Репозиторий, реализованный в EF Core: использовать весь DbContext или только DbSet? [закрыто]C#

Место общения программистов C#
Anonymous
Репозиторий, реализованный в EF Core: использовать весь DbContext или только DbSet? [закрыто]

Сообщение Anonymous »

Учитывая, что EF Core уже реализует шаблон репозитория () и единица работы (

Код: Выделить всё

DbContext
), могу ли я использовать DbSet прямо в моем репозитории вот так?

Код: Выделить всё

public class MyEfRepository : IMyRepository
{
private readonly DbSet _myModels;

public MyEfRepository(MyDbContext ctx)
{
_myModels = ctx.MyModels;
}

public MyModel FindById(Guid id)
{
return _myModels.Where(x => x.Id == id).SingleOrDefault();
}
}
И реализовать единицу работы следующим образом?

Код: Выделить всё

public class MyEfUnitOfWork : IMyUnitOfWork
{
private readonly MyDbContext _ctx;
public IMyRepository MyModels { get; }

public MyEfUnitOfWork(MyDbContext ctx, MyEfRepository repo)
{
_ctx = ctx;
MyModels = repo;
}

void Commit() => _ctx.SaveChanges();
}
Мне интересно, потому что каждое руководство, которое я читал, рекомендовало внедрить весь DbContext в репозиторий, а в таких методах, как FindById, получить доступ к DbSet через него. Поскольку единица работы зафиксирует все изменения, не имеет ли мой подход больше смысла? Или я чего-то не знаю?

Подробнее здесь: https://stackoverflow.com/questions/706 ... only-dbset

Вернуться в «C#»