【问题标题】:Entity Framework Error unable to load the specified metadata resource [duplicate]实体框架错误无法加载指定的元数据资源[重复]
【发布时间】:2016-10-04 02:14:37
【问题描述】:

是的,我确实阅读并尝试了entity framework Unable to load the specified metadata resource

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

上下文:

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; }
}

连接字符串:

<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"/>

错误:

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

点击这条线:

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

完整方法:

 public WorkerPublicExtended GetEmployee(string idsid)
 {
     using (x500Entities context = new x500Entities())
     {
         return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim());
     }
 }
  1. 为什么会这样?
  2. 我连接到 sql server ssms,但没有看到我在图表 edmx 和模型中看到的表 WorkerPublicExtended,我看不到该名称在哪里被转换为真实的表名。这是怎么回事?

【问题讨论】:

    标签: c# .net entity-framework edmx edmx-designer


    【解决方案1】:

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

    2) 当你说你连接到数据库并且你没有看到表时,那么你是在错误的数据库中吗?这绝不应该发生,您为另一个数据库生成了 EDMX,或者有人删除了表并且没有重新生成 edmx? :X

    如果您 200% 确定要连接的数据库是架构、过程、视图等方面的最新数据库,还是生产数据库,为什么不删除整个 edmx 并重新创建、测试和重新部署?

    【讨论】:

      【解决方案2】:

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

      • 您可能已将模型的 MetadataArtifactProcessing 属性更改为复制到输出目录,或者
      • 您更改了其他内容(例如程序集的名称),或者
      • 您可能正在使用编译后任务来嵌入不再工作的 EMDX。

      来自here

      还要检查整个字符串的语法是否正确。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-31
        • 1970-01-01
        • 2014-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-15
        • 1970-01-01
        相关资源
        最近更新 更多