2013-07-21 36 views
0

我有工作单元类,我有那里配置数据库上下文的方法。但我也将数据库上下文传递给存储库类 - NotesRepository - 我是否也应该在NotesRepository类中处理上下文,或者因为此上下文被放置在工作单元类中,所以它不是必需的?工作单元和存储库模式和配置数据库上下文

public class UnitOfWork : IDisposable 
{ 
    private DatabaseContext context = new DatabaseContext(); 
    private NotesRepository notesRepository; 

    public NotesRepository NotesRepository 
    { 
     get 
     { 
      if (this.notesRepository == null) 
      { 
       this.notesRepository = new NotesRepository(context); 
      } 
      return notesRepository; 
     } 
    } 


    private bool disposed = false; 

    protected virtual void Dispose(bool disposing) 
    { 
     if (!this.disposed) 
     { 
      if (disposing) 
      { 
       context.Dispose(); 
      } 
     } 
     this.disposed = true; 
    } 

    public void Dispose() 
    { 
     Dispose(true); 
     GC.SuppressFinalize(this); 
    } 
} 

,这是仓库类:

public class NotesRepository 
{ 
    private DatabaseContext context; 

    public NotesRepository(DatabaseContext context) 
    { 
     this.context = context; 
    } 


    public IQueryable<Notes> GetAllNotes() 
    { 
     return (from x in context.Notes 
       orderby x.CreateDate descending 
       select x); 
    }   
} 

回答

0

我建议你的UnitOfWork类中这样

using(var ctx = new DatabaseContext()) 
{ 
    var repo = new NotesRepo(ctx); 
} 

现在将通过使用approriately配置 - 无需处理它在存储库中

相关问题