MetadataException:无法加载指定的元数据资源

.net ado.net c# entity-framework

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

有人有主意吗?

更多细节:我没有更改任何属性,我没有更改任何输出程序集的名称,我没有尝试在程序集中嵌入EDMX。我离开工作只等了10个小时,直到我回来。然后它不再工作了。

我试过重新创建EDMX。我试过重新创建这个项目。我甚至尝试从头开始重新创建数据库。没有运气,无论如何。

一般承认的答案

这意味着应用程序无法加载EDMX。有几件事可以导致这种情况。

  • 您可能已将模型的MetadataArtifactProcessing属性更改为“复制到输出目录”。
  • 连接字符串可能是错误的。我知道你说你没有改变它,但是如果你改变了其他东西(比如装配的名称),它仍然可能是错的。
  • 您可能正在使用后编译任务将EDMX嵌入到程序集中,该程序集由于某种原因不再起作用。

简而言之,你的问题中没有足够的细节来给出准确的答案,但希望这些想法能让你走上正轨。

更新:我写了一篇博文,其中包含更完整的故障排除步骤


热门答案

这个小改动有助于解决这个问题。

我有3个项目的解决方案。

connectionString="metadata=res://*/Model.Project.csdl|res://*/Model.Project.ssdl|res://*/Model.Project.msl;

改成

connectionString="metadata=res://*/;


许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因