实体框架无法加载指定的元数据资源

Wra*_*ath 72 .net entity-framework

可能重复:
MetadataException:无法加载指定的元数据资源

我希望有人可以帮忙解决这个问题.我试过在这里关注其他帖子和其他几十个网站,但我可以让这个工作.

实体框架全部工作,然后第二天才开始给我错误:无法加载指定的元数据资源.在实体类的构造函数上.

我检查了连接字符串,删除并重新添加了所有内容,但我仍然无法使其工作.

我的模型命名空间是WraithNath.co.uk.Models

元数据artificat嵌入在程序集中

我的连接字符串如下:

<add name="ConnectionString" connectionString="Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\WraithNath.co.uk.mdf;Integrated Security=True;" providerName="System.Data.SqlClient" />
   <add name="Entities" connectionString="metadata=res://*/Models.WraithNath.co.uk.csdl|res://*/Models.WraithNath.co.uk.ssdl|res://*/Models.WraithNath.co.uk.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\WraithNath.co.uk.mdf;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

在Reflector中查看时,我无法在程序集中找到我需要的3个文件.

是否有分步指南来解决这个问题?我已经尝试了谷歌前3页的每个链接搜索结果'实体框架无法加载指定的元数据资源'.

Psy*_*der 163

Craig Stuntz撰写了一篇广泛的(在我看来)博客文章,对这个确切的错误消息进行排除,我个人会从那里开始.

以下res:(资源)引用需要指向您的模型.

<add name="Entities" connectionString="metadata=
    res://*/Models.WraithNath.co.uk.csdl|
    res://*/Models.WraithNath.co.uk.ssdl|
    res://*/Models.WraithNath.co.uk.msl;
Run Code Online (Sandbox Code Playgroud)

确保每个文件在"*/"之后都具有.edmx文件的名称,并将"edmx"更改为该res的扩展名(.csdl,.ssdl或.msl).

它也可能有助于指定程序集而不是使用"//*/".

最糟糕的情况是,你可以通过使用来检查所有内容(有点慢但应该始终找到资源)

<add name="Entities" connectionString="metadata=
        res://*/;provider= <!-- ... -->
Run Code Online (Sandbox Code Playgroud)