Я пытаюсь использовать Repository / UoW Pattern в основном проекте .net.Я посмотрел на многие реализации в Интернете.Во всех реализациях репозитории создаются как свойства в IUnitOfWork.
В будущем, если у нас будет 50 репозиториев, нам нужно иметь 50 свойств в единице работы.Может кто-нибудь предложить лучший подход для реализации Repository / UoW.
Пожалуйста, найдите ниже фрагменты кода подхода, который я реализовал в настоящее время.
IUnitOfWork.cs
IStudentRepository Student { get; set; }
IClassRepository Class { get; set; }
void Complete();
UnitOfWOrk.cs
public class unitofwork {
private readonly CollegeContext _context;
IStudentRepository Student { get; set; }
IClassRepository Class { get; set; }
public UnitOfWork(CollegeContext CollegeContext)
{
this._context = CollegeContext;
Student = new StudentRepository(_context);
Class = new ClassRepository(_context);
}
public void Complete()
{
return _context.SaveChanges();
}
}
Репозитории учеников и классов наследуются от универсального класса репозитория и IStudentRepository и IClassRepository соответственно.
StudentRepository.cs
public class StudentRepository : Repository<Student> , IStudentRepository
{
private readonly CollegeContext context;
private DbSet<Student> entities;
public StudentRepository(CollegeContext context) : base(context)
{
this.context = context;
entities = context.Set<Student>();
}
}