Dustin Laine
Dustin Laine

Reputation: 38513

EF4 and Connection String

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=&quot;Data Source=PC\SQLEXPRESS;Initial Catalog=Project;Integrated Security=True;MultipleActiveResultSets=True&quot;" 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

Answers (3)

SystemBug
SystemBug

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=&quot;Data Source=PC\SQLEXPRESS;Initial Catalog=Project;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

Upvotes: 0

Craig Stuntz
Craig Stuntz

Reputation: 126557

I wrote a lengthy guide to debugging this error a while back.

Upvotes: 8

Devart
Devart

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

Related Questions