lex*_*eme 1 c# nhibernate design-patterns unit-of-work repository-pattern
关于使用的讨论很多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 )
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的代码中,您可以这样做:
using( ISession s = _sessionFactory.OpenSession() )
{
var repository = s.GetEmployeeRepository();
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |