关于Repository pattern
,UoW pattern
的使用有许多讨论。我非常理解何时以及为什么使用Repository pattern
。
假设我有几个聚合根。下一步是什么?我更喜欢哪种模式/实现?为什么使用比普通NHibernate Session更复杂的解决方案的原因是什么?
谢谢!
最佳答案
存储库模式是一种抽象的,不需要。它仅允许您预定义某些查询,这些查询可以在整个系统中多次使用,并且可以提高可读性。
存储库使用工作单元(已由NHibernate的ISession
实现);这是我的观点。
我要做的是在NHibernate的ISession上为您的项目创建一些扩展方法。看起来像这样:
public class ISessionExtensions
{
public static IEmployeeRepository GetEmployeeRepository( this ISession session )
{
return new EmployeeRepository(session);
}
}
public class EmployeeRepository()
{
internal EmployeeRepository( ISession s )
{
}
public IEnumerable<Employee> GetEmployeesFromDepartment( Department d )
{
...
}
}
然后,在您的代码中,您可以执行以下操作:
using( ISession s = _sessionFactory.OpenSession() )
{
var repository = s.GetEmployeeRepository();
...
}
关于c# - 存储库模式,UoW模式,普通NHibernate session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8645751/