DB第一实体框架方法中的通用存储库

时间:2017-05-16 06:14:46

标签: c# entity-framework repository

我正在编写一个详细的here通用存储库。我正在使用DB First方法生成EF模型。

public class GenericRepository<TEntity> where TEntity : class
{
    internal SchoolContext context;
    internal DbSet<TEntity> dbSet;

    public GenericRepository(SchoolContext context)
    {
        this.context = context;
        this.dbSet = context.Set<TEntity>();
    }
    //Removed for brevity reason
}

在我的情况下,intellisense没有显示Set as function,而是列出了所有实体。为了使它通用,我不需要命名实体,而是通用方法。

如何将其分配给通用实体,或者是否有其他更好的方法来编写通用存储库?

1 个答案:

答案 0 :(得分:0)

我将Repository层分离到另一个类库项目中,以便在我的代码堆栈中添加正确的N层分层,并且新项目没有引用EnityFramework。在为EnityFramework添加一个参考之后,它就有用了!

我不知道这是不是一个好的设计,因为它将我的存储库与实体框架紧密耦合,我将不得不在单元测试时模拟DataContext和DBSet。

对我正在做的事情有没有更好的方法,或者这样做好吗?