首页 文章

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

提问于
浏览
71

可能重复: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" />

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

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

1 回答

  • 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= <!-- ... -->
    

相关问题