具有工作单元的 MVC 存储库模式

MVC repository pattern with unit of work

我已经在 MVC 应用程序中实现了带有工作单元的存储库模式。这是实现:

     public interface IUnitOfWork
    {
        IStudentRepository Students { get; }
        ICourseRepository Courses { get; }
        void Complete();
    }`
`    `
    public class UnitOfWork : IUnitOfWork
    {
        private readonly ApplicationDbContext _context;

        public IStudentRepository Students { get; private set; }
        public ICourseRepository Courses { get; private set; }

        public UnitOfWork(ApplicationDbContext context)
        {
            _context = context;
            Students = new StudentRepository(_context);
            Courses = new CourseRepository(_context);
        }

        public void Complete()
        {
            _context.SaveChanges();
        }
    }

` 我的问题是,当我有 100 个存储库时,启动存储库的最佳方法是什么?

谢谢

我从该视频的一条评论中找到了答案:https://www.youtube.com/watch?v=rtXpYpZdOzM

我可以像下面这样使用 getter,而不是在构造函数中初始化存储库:

public class UnitOfWork : IUnitOfWork
{
    private readonly ApplicationDbContext _context;

    private ICourseRepository _courses = null;
    private IStudentRepository _students = null;

    public UnitOfWork(ApplicationDbContext context)
    {
        _context = context;
    } 
  public ICourseRepository Courses => _courses ?? (_courses = new CourseRepository(_context));
public IStudentRepository Students => _students ?? (_students = new StudentRepository(_context));