我目前正在玩的HybridSessionBuilder类发现在Jeffrey Palermo的博客文章:
@H_404_2@http://jeffreypalermo.com/blog/use-this-nhibernate-wrapper-to-keep-your-repository-classes-simple/
@H_404_2@使用这个类,我的存储库看起来像这样:
@H_404_2@这是管理NHibernate会话/工厂的最好方法吗?我听说过关于工作单元的事情,并为每个Web请求创建一个会话,并在最后刷新它。从我可以告诉,我目前的实现不是做任何这些。它基本上依赖于Repository从会话工厂获取会话,并使用它来运行查询。 @H_404_2@这样做数据库访问有任何陷阱吗?
- public class UserRepository : IUserRepository
- {
- private readonly ISessionBuilder _sessionBuilder;
- public UserRepository(ISessionBuilder sessionBuilder)
- {
- _sessionBuilder = sessionBuilder;
- }
- public User GetByID(string userID)
- {
- using (ISession session = _sessionBuilder.GetSession())
- {
- return session.Get<User>(userID);
- }
- }
- }