2016-07-13 11 views
0

私は作業ユニットを持つリポジトリパターンをMVCアプリケーションに実装しました。ここで実装したものです:私は、リポジトリの数百を持っている場合、作業ユニットを含む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(); 
     } 
    } 

` 私の質問があり、リポジトリを開始する最良の方法は何ですか?

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)); 

:私は以下のようにゲッターを使用することができ、コンストラクタでリポジトリを初期化する代わりに https://www.youtube.com/watch?v=rtXpYpZdOzM

おかげ

+0

エンティティフレームワークはすでにリポジトリを使用した作業ユニットです。なぜホイールを再発明しようとしますか? –

答えて

0

私はこのビデオからのコメントの中から答えを見つけました