关于c#:Entity Framework无法加载指定的元数据资源

Entity Framwork Unable to Load the specified metadata resource

所以我在我的项目中设置了一个SQL服务器和EF。

1
MPSDBEntities mpsEntities = new MPSDBEntities();

当我进行保存更改时,它工作正常。例如

1
mpsEntities.SaveChanges();

它会更新数据库(这是否意味着我的连接字符串是正确的?)

但是,每当我尝试从EF执行任何类型的加载数据/SQL时,例如

1
var temp = mpsEntities.CARD_BY_CHECKTYPE.Where(x => (x.CHECK_TYPE =="AA2")).ToList();

它会抛出一个例外

Unable to Load the specified metadata resource.

这是我的连接字符串,我怀疑问题出在哪里:

1
2
3
<add name="MPSDBEntities"
     connectionString="metadata=res://*/MPSDBModel.csdl|res://*/MPSDBModel.ssdl|res://*/MPSDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=PAE0DT-DDWB282\MPS2;initial catalog=MPS;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;"
     providerName="System.Data.EntityClient" />

我浏览了下面的帖子。他们没有解决我的问题。

System.Data.MetadataException:无法加载指定的元数据资源

MetadataException:无法加载指定的元数据资源

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

无法加载指定的元数据资源

有人知道问题是什么吗?谢谢您。

@ PeTryuno1

这是我的DbContext,如果你问这个的话……

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public partial class MPSDBEntities : DbContext
{
    public MPSDBEntities() : base("name=MPSDBEntities")
    {
    }

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

    public virtual DbSet<CARD_BY_CHECKTYPE> CARD_BY_CHECKTYPE { get; set; }
    ........
}


这对我很有用。

从此处更改:

1
connectionString="metadata=res://*/Model.Project.csdl|res://*/Model.Project.ssdl|res://*/Model.Project.msl;

改为:

1
connectionString="metadata=res://*/;

然后在后面添加连接字符串的其余部分。希望它有帮助。