Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架-实体类型X不是当前上下文模型的一部分_C#_Entity Framework_Linq - Fatal编程技术网

C# 实体框架-实体类型X不是当前上下文模型的一部分

C# 实体框架-实体类型X不是当前上下文模型的一部分,c#,entity-framework,linq,C#,Entity Framework,Linq,我正在使用实体框架来提供对数据存储的访问——但是,我遇到了一个我不太理解的错误 具体来说,“实体类型异常查询不是当前上下文模型的一部分。” 此错误发生在 using (PHSRP_DashboardDBEntities _DBC = new PHSRP_DashboardDBEntities()) { //to be replaced by proper table -- anomaly query var ListAnomalies = _DBC

我正在使用实体框架来提供对数据存储的访问——但是,我遇到了一个我不太理解的错误

具体来说,“实体类型异常查询不是当前上下文模型的一部分。”

此错误发生在

    using (PHSRP_DashboardDBEntities _DBC = new PHSRP_DashboardDBEntities())
    {
        //to be replaced by proper table -- anomaly query
        var ListAnomalies = _DBC.AnomalyQueries
                                .OrderBy(p => p.QueryName)
                                .ToList();

        lbx_PickAnomalies.DataSource = ListAnomalies;
    }
PHSRP_DashboardDBEntities(扩展DbContext)具有以下代码:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<AnomalyQuery>().ToTable("AnomalyQuery");
    modelBuilder.Entity<AnomalyParameter>().ToTable("AnomalyParameter");

    throw new UnintentionalCodeFirstException();
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
实体,但我不确定它是否相关,因为它从未被引用过

此外,以下数据库集在PHSRP_DashboardDBEntities中实例化:

public virtual DbSet<AnomalyParameter> AnomalyParameters { get; set; }
public virtual DbSet<AnomalyQuery> AnomalyQueries { get; set; }
公共虚拟数据库集异常参数{get;set;} 公共虚拟数据库集异常查询{get;set;}
这两个类(AnomalyParameter和AnomalyQuery)是在PHSRP_DashboardDBEntities的数据模型中定义的,因此应该是有效的类

例如

公共部分类异常查询
{
公共异常查询()
{
this.AnomalyParameters=新的ObservableListSource();
}
公共int QueryID{get;set;}
公共字符串QueryName{get;set;}
公共字符串QueryText{get;set;}
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”,“CA2227:CollectionPropertiesShouldBreadOnly”)]
公共虚拟observeListSource异常参数{get;set;}
}
在PHSRP_DashboardDataModel.tt中定义


因此,在我看来,实体类型异常查询显然是当前上下文模型的一部分,因此,我不确定如何解决此错误。

为什么在
OnModelCreating
中抛出异常?此异常的目的是强制数据库映射由框架本身处理。要请确保-我注释掉了这一行,并且得到了相同的错误。这将导致忽略您的
.ToTable
映射。请尝试删除该异常。我很久没有使用过数据库优先或模型优先。如果这解决了问题,请查看您的.tt文件,了解如何从模型优先的角度完成相同的事情。我一定是在你发布的时候编辑了我的评论,所以我把它注释掉了,出现了同样的错误。哇..数据库中异常参数的对应表被拼错为AmomalyParameters..纠正了这个错误。你为什么要在模型创建上抛出一个异常n是强制数据库映射由框架本身处理。可以肯定的是,我注释掉了这一行,得到了相同的错误。这将导致忽略你的
.ToTable
映射。尝试删除该异常。我很久没有使用数据库优先或模型优先。如果这解决了问题,请查看你的.tt文件理解如何从模型优先的角度完成同样的事情。我一定是在你发布的时候正确编辑了我的评论——所以我将其注释掉了,并且出现了相同的错误。哇..数据库中异常参数的对应表被拼写为AmomalyParameters..更正此错误修复了错误。
public partial class AnomalyQuery
{
    public AnomalyQuery()
    {
        this.AnomalyParameters = new ObservableListSource<AnomalyParameter>();
    }

    public int QueryID { get; set; }
    public string QueryName { get; set; }
    public string QueryText { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ObservableListSource<AnomalyParameter> AnomalyParameters { get; set; }
}