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

有人有什么想法吗?

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

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


当前回答

一个糟糕的app.config或web。配置文件可以做到这一点..我已经复制了app.config连接字符串到我的web。在我的UI中配置,最终进入:

<connectionStrings>
    <connectionStrings>
          <add name="name" connectionString="normalDetails"/>
    </connectionStrings>
</connectionStrings>

其他回答

只需输入path,而不是{path . to . path。}: res: / / / {Path.To.The。}YourEdmxFileName.csdl | res: / / / {Path.To.The。}YourEdmxFileName.ssdl | res: / / * / {Path.To.The。}YourEdmxFileName.msl

我从解决方案中的所有项目中删除了\bin和\obj文件夹,然后重新构建解决方案,它工作得很好

在将一个大的解决方案从源代码管理资源管理器的一个文件夹移动到另一个文件夹后,我得到了这个问题。我们没有把包文件夹检查到Team Foundation,所以我认为VS会自动下载包。这将我的EF表单v6.1.2升级到v6.1.3。

当我降级到最初的v6.1.2时,这个问题就消失了。

在将项目升级到。net 6时,我也收到了这个错误,以前的解决方案都没有解决我的问题。

你可能想检查你的。edmx文件是否有以下两个属性设置如下:

构建动作:EntityDeploy 复制到输出目录:始终复制

最终,我的问题是我的.edmx文件中引用的文件没有生成。

我能够在Visual Studio 2010, VB.net (ASP.NET) 4.0中解决这个问题。

在实体模型向导期间,您将能够看到实体连接字符串。从这里,您可以复制并粘贴到连接字符串中。

我唯一缺少的是连接字符串中的“App_Code.”。

entityBuilder.Metadata = "res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl"