首页 文章

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

提问于
浏览
0

这个问题在这里已有答案:

是的我读过并尝试entity framework Unable to load the specified metadata resource

我通常首先使用代码,没有任何问题 . 但是我需要使用 EDMX 对项目进行故障排除

Context:

public partial class x500Entities : DbContext
{
    public x500Entities()
        : base("name=x500Entities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public virtual DbSet<WorkerPublicExtended> WorkerPublicExtendeds { get; set; }
}

connection string :

<add name="x500Entities"
connectionString="metadata=res://*/CDISWorkerPublicExtended.csdl|res://*/CDISWorkerPublicExtended.ssdl|res://*/CDISWorkerPublicExtended.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xserver;initial catalog=x500;persist security info=True;user id=xuser;password=xpassword;MultipleActiveResultSets=True;App=EntityFramework&quot;"
providerName="System.Data.EntityClient"/>

ERROR :

EntityFramework.dll中出现“System.Data.Entity.Core.MetadataException”类型的异常但未在用户代码中处理附加信息:无法加载指定的元数据资源 .

点击这一行:

return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim());

Complete Method :

public WorkerPublicExtended GetEmployee(string idsid)
 {
     using (x500Entities context = new x500Entities())
     {
         return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim());
     }
 }
  • 为什么会这样?

  • 我连接到sql server ssms并且我没有看到我在图edmx和模型中看到的表 WorkerPublicExtended ,我看不到该名称被转换为真实表名的位置 . 这怎么样?

2 回答

  • 0

    可能的原因:1)您的资源文件在您的项目中找不到(此资源文件在您的连接字符串中的app.config中配置)确认oyu有它 .

    2)当你说你连接到数据库而你没有看到表,那么你在错误的数据库中?这应该永远不会发生,你有一个为另一个数据库生成的EDMX,或者有人下了 table 而没有重新生成edmx? :X

    如果您有200%确定要连接的数据库是最新的模式,过程,视图等,或者它是 生产环境 数据库,为什么不删除整个edmx并重新创建,测试和重新部署?

  • 0

    EMDX的三个部分在连接字符串中看起来是正确的 . 仔细检查此部分是否正确(请参阅此guideline以解决您的问题):

    • 您可能已将模型的MetadataArtifactProcessing属性更改为Copy to Output Directory,或

    • 您更改了其他内容(例如程序集的名称),或者

    • 您可能正在使用后编译任务来嵌入不再有效的EMDX .

    来自here .

    还要检查整个字符串以获取正确的语法 .

相关问题