在哪里使用Entity Framework放置DSet DataAccess逻辑?

时间:2017-05-05 13:54:30

标签: c# entity-framework ef-code-first entity-framework-6 code-first

我使用的是CodeFirst EF6,我希望将所有相关的"查询"进入一个班级。

我们说我有一个

DbSet<Car> Cars;

在我的DbContext中。

我尝试用我的具体DbSet作为基类创建一个新类:

public class CarRepository : DbSet<Car>

我在其中找到所有与汽车相关的操作。

当我在DbContext类中用CarRepository替换DbSet时,它不会被填充。 然后我尝试从IDbSet派生,但我不确定如何实现所有需要的方法。

有没有另一种方法可以在不使用扩展类的情况下实现这一目标?

1 个答案:

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