EF和POCO。如何正确设置我的项目

时间:2011-10-01 22:46:46

标签: .net entity-framework-4.1 dbcontext

最近我开始使用.NET 4.1中的EF 4.1,直到今天我尝试建立自己的项目时才有了积极的经验(到目前为止,我正在处理由其他人开始的项目)。

这件事只是不想开箱即用。我没有做任何特别的事。实际上,首先它起作用,然后它停止了蓝色工作,现在浪费了我4个小时后,我正在写这篇文章。

我的解决方案包含3个项目:
WebApp(我的应用程序所在的位置)
数据访问
BusinessObjects

DataAccess 包含EntityModel.edmx和EntityModel.Context.tt文件。
BusinessObjects 包含EntityModel.tt以及所有基础对象。我使用ADO.NET DbContext生成器来生成对象 EntityModel.Context.tt的命名空间设置为BusinessObjects。

WebApp和DataAccess正在引用BusinessObjects项目。 BusinessObjects不引用任何内容。

(我相信我确实设置了这个。当编辑文件时,EntityModle.tt能够看到edmx文件和对象被创建。)

所以,在这一点上,项目编译得很好,没有错误。

在我的下一步中,我将EntityDataSource添加到我的default.aspx页面,在我选择数据源配置中的连接(一个来自web.config)后,我收到错误:此连接字符串中指定的元数据不能是加载。考虑重建Web项目...无法加载指定的元数据资源。

之前我遇到过这个问题,当我在连接字符串拼写错误,更改模型名称或类似内容时,但现在我没有做任何事情。我重复了几次edmx文件及其POCO,确保我从app.config复制连接字符串。它根本不起作用。

感谢任何帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

您必须更改web.config中的连接字符串:

connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider...etc...

基本上: metadata = res:// * / ;将尝试在项目中所有引用的程序集中查找嵌入的元数据文件(csdl,msl,ssdl),并且您可以更好地找到作为edmx文件的工件生成的嵌入式资源。

希望这有帮助。