我使用的是CodeFirst EF6,我希望将所有相关的"查询"进入一个班级。
我们说我有一个
DbSet<Car> Cars;
在我的DbContext中。
我尝试用我的具体DbSet作为基类创建一个新类:
public class CarRepository : DbSet<Car>
我在其中找到所有与汽车相关的操作。
当我在DbContext类中用CarRepository替换DbSet时,它不会被填充。 然后我尝试从IDbSet派生,但我不确定如何实现所有需要的方法。
有没有另一种方法可以在不使用扩展类的情况下实现这一目标?
答案 0 :(得分:0)
您可以简单地创建自己的单个类(您的存储库)并将您的方法设置为这样。
public class Repository<TEntity> where TEntity : class
{
private DbContext context;
private DbSet<TEntity> dbSet;
public Repository(DbContext context)
{
this.context = context;
this.dbSet = context.Set<TEntity>();
}
public virtual TEntity GetByID(object id)
{
return dbSet.Find(id);
}
}