突然,在实例化生成的ObjectContext类时,我一直得到一个MetadataException。App.Config中的连接字符串看起来是正确的-自从上次它工作以来没有改变-我已经尝试从底层数据库中重新生成一个没有变化的新模型(edmx-file)。

有人有什么想法吗?

进一步的细节:我没有更改任何属性,没有更改任何输出程序集的名称,也没有尝试将EDMX嵌入到程序集中。我只是下班后等了10个小时才回来。然后它就不管用了。

我试过重新创造EDMX。我试着重新创建这个项目。我甚至尝试从头开始重新创建数据库。不管怎样,运气不好。


当前回答

我只是没有引用包含EDMX文件的类库。

其他回答

我遇到了同样的错误消息的问题。我的问题通过关闭并重新打开Visual Studio 2010解决了。

我也遇到了和Rick一样的问题和解决方案,只是我要将一个现有的.edmx导入到一个新项目中,虽然基本名称空间无关紧要,但它被导入到不同的子目录中,因此我还必须更新Web内部的连接字符串。配置在三个地方,包括不同的子目录命名:

我在解决方案文件夹中包含项目的解决方案中遇到了同样的问题,当它们被移动到解决方案根目录时(为了克服Mvc3AppConverter由于项目位置而导致的疑似bug)。

尽管在需要时重新添加了所有*项目引用后编译了解决方案,但在网站启动时抛出了错误。

EDMX在其中一个被移动的项目(“Data”项目)中,但当然,缺少对Data项目的引用并不会导致编译错误,只是运行时错误。

简单地将缺少的引用添加到主项目就解决了这个问题,根本不需要编辑连接。

我希望这能帮助到其他人。

如果您正在使用来自不同项目的edmx,那么在连接字符串中,更改…

metadata=res://*/Data.DataModel.csdl

……

metadata=res://*/DataModel.csdl

有时我在我的项目中看到这个错误。我通过

1 -右键单击EDMX文件

2 -选择“运行自定义工具”选项

3 -重建项目