我有這些接口:幫助溫莎和工作模式庫和單位
public interface IUnitOfWork
{
IPersonRepository People { get; }
IBookRepository Books { get; }
int Commit();
}
public interface IBookRepository
{
Book GetBookById(int id);
IQueryable<Book> GetAllBooks();
}
public interface IPersonRepository
{
Person GetPersonById(int id);
IQueryable<Person> GetAllPeople();
}
我實現IUnitOfWork
如下:
public class SqlUnitOfWork : IUnitOfWork
{
private readonly DbContext dbContext;
public SqlUnitOfWork()
{
dbContext = new DbContext("name=SQLContainer");
}
public IPersonRepository People
{
get { return IoC.Container.Resolve<IPersonRepository>(new { DbContext = dbContext }); }
}
public IBookRepository Books
{
get { return IoC.Container.Resolve<IBookRepository>(new { DbContext = dbContext }); }
}
public int Commit()
{
return dbContext.SaveChanges();
}
}
的IBookRepository
和IPersonRepository
的實現使用一個構造函數一個DbContext
作爲參數,並且此DbContext在SqlUnitOfWork(上面的代碼)中創建,並且我使用Resolve方法的重載傳遞此參數。
我的問題是,這是正確的方法嗎?這是一個很好的做法嗎?
謝謝!
看看[這篇文章](http://bit.ly/bF7jL3)。它顯示了類似的評價。它可能會給你一些想法。 – Steven