作業単位クラスがあり、データベース コンテキストを破棄するメソッドがあります。しかし、データベース コンテキストもリポジトリ クラス (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);
}
}