C# 如何向EF6自动生成模型添加基类/接口

C# 如何向EF6自动生成模型添加基类/接口,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,我已经从数据库中生成了EF上下文。现在我希望所有实体都从一个基本实体继承,这样我就可以通过使用这个基本实体引用所有实体 Public Partial Class Lookup : BaseEntity { } 每当我试图使用DbSet.Add(实体)时 公共类GenericRepository:IRepository其中T:IRepositoryEntity { #区域私有成员变量。。。 内部环境; 内部数据库集; #端区 #区域公共构造函数。。。 /// ///公共构造函数,初始化私有声明

我已经从数据库中生成了EF上下文。现在我希望所有实体都从一个基本实体继承,这样我就可以通过使用这个基本实体引用所有实体

Public Partial Class Lookup : BaseEntity
{
}
每当我试图使用DbSet.Add(实体)时

公共类GenericRepository:IRepository其中T:IRepositoryEntity
{
#区域私有成员变量。。。
内部环境;
内部数据库集;
#端区
#区域公共构造函数。。。
/// 
///公共构造函数,初始化私有声明的局部变量。
/// 
/// 
公共一般报告(2016年3月)
{
this.Context=Context;
this.DbSet=context.Set();
}
/// 
///实体的通用插入方法
/// 
/// 
公共无效插入(T实体)
{
添加(实体);
}
}
它说BaseEntity不是EF模型的一部分。我试图修改Context.TT类,但它似乎只会帮助生成从基类继承的实体类


如何将这个基类添加到实体模型中,以便操作可以正常工作?请提出建议。

您是否也可以为IRepositoryEntity添加代码,我认为应该是BaseEntity?同时也使您的baseEntity抽象。

我能够缩小问题的范围。DBSet的类型是BaseEntity,我试图使用BaseEntity的DBSet插入一个实体。EF抛出此异常是正确的。这是因为存储库正在以BaseEntry类型返回。我一拿到entity类型的存储库,问题就解决了。

做你想做的事情没问题。可能您正在创建/向数据库集添加BaseEntity(但您不能)。尝试将其抽象化并编译项目,这样您就可以看到您在做什么。我已经添加了引发异常的确切代码行。当我执行DBSet.Add(查找实体)时,它会抛出错误。您还可以向我们显示DBSet声明吗?添加的DBSet声明。
public class GenericRepository<T> : IRepository<T> where T:IRepositoryEntity
{
    #region Private member variables...
    internal March2016Entities Context;
    internal DbSet<T> DbSet;
    #endregion

    #region Public Constructor...
    /// <summary>
    /// Public Constructor,initializes privately declared local variables.
    /// </summary>
    /// <param name="context"></param>
    public GenericRepository(March2016Entities context)
    {
        this.Context = context;
        this.DbSet = context.Set<T>();
    }
    /// <summary>
    /// generic Insert method for the entities
    /// </summary>
    /// <param name="entity"></param>
    public  void Insert(T entity)
    {

        DbSet.Add(entity);
    }
}