Reputation: 38513
I have a 3 tiered project.
1) Project.Data (EDMX file)
2) Project.Model (POCO's)
3) Project.Console (Console app)
I have added the connection string into the Project.Console
.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="ProjectEntities" connectionString="metadata=res://*/Project.csdl|res://*/Project.ssdl|res://*/Project.msl;provider=System.Data.SqlClient;provider connection string="Data Source=PC\SQLEXPRESS;Initial Catalog=Project;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
The Project.Model
is built using the EntityObject
T4 Template in VS2010. It generates a ObjectContext
class, with this constructor:
public ProjectEntities() : base("name=ProjectEntities", "ProjectEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
I am just trying to instantiate the context
object, in the Project.Console
:
namespace Project.Console
{
class Program
{
static void Main(string[] args)
{
ProjectEntities pe = new ProjectEntities();
}
}
}
However, I am getting a MetadataException was unhandled
error at the constructor. Stating Unable to load the specified metadata resource.
I have done a ton of research (Googling), and found that it seems to be a linking issue on those resources. I cannot seem to find a resolution.
Any help is appreciated.
Upvotes: 7
Views: 8034
Reputation: 31
Please replace the * with your project.data assembly like below
<add name="ProjectEntities" connectionString="metadata=res://Project.Data/Project.csdl|res://Project.Data/Project.ssdl|res://Project.Data/Project.msl;provider=System.Data.SqlClient;provider connection string="Data Source=PC\SQLEXPRESS;Initial Catalog=Project;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
Upvotes: 0
Reputation: 126557
I wrote a lengthy guide to debugging this error a while back.
Upvotes: 8
Reputation: 121952
Open your assembly using any resource viewer (e.g., RedGate .NET Reflector) and check that the name of the metadata resource is the same that you have specified in the app.config.
Upvotes: 3