我一直在看这个名为“NHibernate 和工作单元模式”的优秀博客,并且有一个关于在 asp.net mvc 项目中使用 UnitOfWork.Start 的最佳位置的问题。
我的 SLN 分为以下项目:-
MVC project
Repository
NHibernateUnitOfWork
我有一个界面: -
public interface INameRepository
...
IList<Name> GetByOrigin(int OriginId)
...
我有一个具体的实现
public class NameRepository : INameRepository
...
public IList<Name> GetByOrigin(int OriginId) {
using (UnitOfWork.Start()) {
var query = session.Linq<...
return query;
}
}
...
我的问题是我是否使用 using(UnitOfWork.Start()) 将所有方法包装在所有存储库中,还是有更好的方法?
我正在使用 nHibernate,asp.net mvc。