views:

64

answers:

2

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.

+1  A: 

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.

Devart
+2  A: 

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

Craig Stuntz

related questions