可能重复:
MetadataException: Unable to load the specified metadata resource
我希望有人可以帮忙解决这个问题。我曾尝试过关注其他帖子和其他几十个网站,但我可以使用它。
实体框架全部正常工作,然后第二天就开始给我错误:无法加载指定的元数据资源。在实体类的构造函数上。
我检查了连接字符串,删除并重新添加了所有内容,但我仍然无法正常工作。
我的模型命名空间是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="Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\WraithNath.co.uk.mdf;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
在Reflector中查看时,我无法在程序集中找到我需要的3个文件。
是否有分步指南来解决这个问题?我已经尝试了谷歌前3页的每个链接搜索结果'实体框架无法加载指定的元数据资源'。
答案 0 :(得分:162)
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;
确保每个文件在“* /”之后都有.edmx文件的名称,并将“edmx”更改为该res的扩展名(.csdl,.ssdl或.msl)。
它也可能有助于指定程序集而不是使用“//*/".
最糟糕的情况是,您可以使用
检查所有内容(有点慢但应始终找到资源)<add name="Entities" connectionString="metadata=
res://*/;provider= <!-- ... -->