我希望我的存储库继承自抽象类(基本存储库),而不是接口。我决定要使用抽象类,因为我不会对存储库进行单元测试(我将改为对服务层进行单元测试)并且我不想将相同的实现复制到从这个基础存储库继承的每个存储库类.
例如:
public abstract class BaseRepository<T> where T : class
{
protected DbSet<T> dbSet;
public BaseRepository(DbContext dataContext)
{
dbSet = dataContext.Set<T>();
}
public void Insert(T entity)
{
dbSet.Add(entity);
}
public IEnumerable<T> SearchFor(Expression<Func<T, bool>> predicate)
{
return dbSet.Where(predicate);
}
public IEnumerable<T> GetAll()
{
return dbSet;
}
public T GetById(int id)
{
return dbSet.Find(id);
}
}
当我尝试创建从该基础存储库继承的其他存储库时,构造函数出现问题。如何将数据上下文传递到这些派生类中以便可以使用它们?