如何将基类/接口添加到EF6自动生成的模型

时间:2016-03-26 08:59:52

标签: c# entity-framework entity-framework-6

我已从数据库生成EF上下文。现在我希望所有实体都从基础实体继承,以便我可以通过使用此基本实体来引用所有实体。

Public Partial Class Lookup : BaseEntity
{
}

每当我尝试使用时,DbSet.Add(实体)

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

它说BaseEntity不是EF模型的一部分。我试图修改Context.TT类,但它似乎只能生成继承自基类的实体类。

如何将此基类添加到实体模型以便操作可以正常工作?请建议。

2 个答案:

答案 0 :(得分:0)

你能为IRepositoryEntity添加代码吗?我以为应该是BaseEntity?并使你的baseEntity抽象化。

答案 1 :(得分:0)

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