c# - Entity Framework - 无法加载指定的元数据资源

标签 c# entity-framework entity-framework-6

我知道这个问题已经被问过很多次了,但我似乎无法弄清问题的根源。我收到以下错误堆栈:

enter image description here

当我反射出我的 dll 时,我可以看到以下内容

enter image description here

阅读 http://blogs.teamb.com/craigstuntz/2010/08/13/38628/它表明我希望在此处看到 csdl、msl 和 ssdl 文件,但事实并非如此。不过,它们确实存在于此处 obj\Debug\edmxResourcesToEmbed。

尽管如此,我还是试图通过这样做明确地告诉 web.config 在哪里查看:

...connectionString="metadata=res://DllName.dll/PaymentModel.csdl|res://DllName.dll/PaymentModel.ssdl|res://DllName.dll/PaymentModel.msl;provider=System.Data.SqlClient;provider ... />

这只是抛出一个错误,说它找不到 dll:

无法解析程序集“DllName.dll”。

与这个 Unresolved SO 问题非常相似 Unable to resolve assembly Model.dll

我尝试的最后一件事是将元数据行更改为:

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

这引发了一条关于我没有使用的 sql ce 的消息 - 有没有办法解决这个问题??

enter image description here

还有什么我可以尝试的吗?或者任何人都可以看到我要去哪里错了吗?一些额外的细节:

  • 使用 EF 6 EDMX 设置为“嵌入式资源”

  • 复制到输出目录:“不要复制”

  • 元数据工件处理:“嵌入输出 组装”

最后,如果我将 EDMX 从嵌入式资源设置为 EntityDeploy,那么这将在本地工作,但不会在构建服务器上构建,因为它抛出与这个 SO 问题完全相同的错误:

Could not find the Conceptual Schema node to embed as a resource for input file

但修复似乎没有帮助,不幸的是我无法在服务器上安装 .NET 4.5。

最佳答案

我遇到了同样的问题。 将带有 EF 模型的 .edmx 文件移动到单独的程序集后,提到的错误让我很头疼:“无法加载指定的元数据资源”。

EF 版本 6.1

解决方法:

旧值:

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

新值:

metadata=res://*/DataModel.csdl

最初 .edmx 位于项目的文件夹下,我已将其移动到项目的根目录中。

关于c# - Entity Framework - 无法加载指定的元数据资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23339335/

相关文章:

entity-framework - 两个(几乎)并发 DbContexts 导致问题 : How to share between Controller and AuthorizeAttribute

entity-framework-6 - Automapper 导致错误 : missing type map configuration or unsupported mapping

C# - 使用子类实现接口(interface)

entity-framework - 更新到EF 6.0.0-alpha后无法使用EF迁移来更新数据库

c# - 如何检查元组是否有任何项目?

c# - 如何使 M :N (many-to-many) relationship where both M and N are the same entities?

c# - Entity Framework 创建名称错误的数据库

entity-framework - 在 EF 4.3 中使用参数执行存储过程时,对象类型 System.Collections.Generic.List 不存在映射

c# - 关闭我的应用程序会干扰我的 Form1_FormClosing 事件

c# - 游戏内货币转换问题