EF4 and Connection String

烈酒焚心 提交于 2019-12-22 04:55:16

问题


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:


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




回答2:


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.




回答3:


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" />


来源:https://stackoverflow.com/questions/3985228/ef4-and-connection-string

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!