0

最近,我开始在 .NET 中使用 EF 4.1,直到今天我尝试建立自己的项目(到目前为止,我正在从事由其他人启动的项目)之前,我都获得了一些积极的经验。

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

我的解决方案包含 3 个项目:
WebApp(我的应用程序所在的位置)
DataAccess
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 复制连接字符串。它根本行不通。

任何帮助表示赞赏。谢谢。

4

1 回答 1

0

您将不得不更改 web.config 中的连接字符串,如下所示:

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

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

希望这可以帮助。

于 2011-10-02T03:02:06.330 回答