【发布时间】:2012-10-02 10:48:37
【问题描述】:
我有一个 3 层的项目。
1) Project.Data(EDMX 文件)
2) Project.Model (POCO)
3)Project.Console(控制台应用)
我已将连接字符串添加到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>
Project.Model 是使用 VS2010 中的EntityObject T4 模板构建的。它使用这个构造函数生成一个ObjectContext 类:
public ProjectEntities() : base("name=ProjectEntities", "ProjectEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
我只是想在Project.Console 中实例化context 对象:
namespace Project.Console
{
class Program
{
static void Main(string[] args)
{
ProjectEntities pe = new ProjectEntities();
}
}
}
但是,我在构造函数中收到MetadataException was unhandled 错误。声明Unable to load the specified metadata resource.
我进行了大量研究(谷歌搜索),发现这似乎是这些资源的链接问题。我似乎找不到解决办法。
感谢任何帮助。
【问题讨论】:
-
我阅读了 Craig 建议的文章,但我仍然不确定我必须将 ...dll 文件引用放在哪里?我有一个和你一样的场景。我假设在 Project.Model 的 app.config 中?我的上下文和 pocos 在单独的项目中与 edm 文件分开,就像你的情况一样,Project.Model。
-
在我的控制台项目中,我需要引用我的数据 (EDMX) 和模型项目。它还需要引用 System.Data.Entity。
标签: visual-studio-2010 c#-4.0 entity-framework-4 connection-string