В чем разница между ApplicationDbContext и DbContext - PullRequest
0 голосов
/ 23 октября 2018

Я ищу в Интернете, как создать динамический репозиторий с EF, и я часто вижу, что люди используют ApplicationDbContext в качестве частного объекта.

Я предполагаю, что он является производным от DbContext, но есть липроблема только с использованием DbContext?

Кстати, я не могу добавить ApplicationDbContext .. есть ли использование я пропускаю?

public class Repository<T> : IRepository<T> where T : EntityBase
{
    private readonly ApplicationDbContext _dbContext;

    public Repository(ApplicationDbContext dbContext)
    {
        _dbContext = dbContext;
    }

    public virtual T GetById(int id)
    {
        return _dbContext.Set<T>().Find(id);
    }

    public virtual IEnumerable<T> List()
    {
        return _dbContext.Set<T>().AsEnumerable();
    }

    public virtual IEnumerable<T> List(System.Linq.Expressions.Expression<Func<T, bool>> predicate)
    {
        return _dbContext.Set<T>()
               .Where(predicate)
               .AsEnumerable();
    }

    public void Insert(T entity)
    {
        _dbContext.Set<T>().Add(entity);
        _dbContext.SaveChanges();
    }

    public void Update(T entity)
    {
        _dbContext.Entry(entity).State = EntityState.Modified;
        _dbContext.SaveChanges();
    }

    public void Delete(T entity)
    {
        _dbContext.Set<T>().Remove(entity);
        _dbContext.SaveChanges();
    }
}

1 Ответ

0 голосов
/ 23 октября 2018

ApplicationDbContext со скаффолдингом может наследовать от IdentityDbContext и два наследовать от DbContext, который имеет функции EntityFramework.ApplicationDbContext может иметь ваш контекст другими словами, он объединяет ваши контексты, и да, вы можете использовать свой собственный DbContext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...