Ejemplo n.º 1
0
 public T Query <T>(Func <ISession, T> queryFunc)
 {
     using (var session = _sessionManager.OpenSession())
     {
         return(queryFunc(session));
     }
 }
 public NHibernateUnitOfWork(INHibernateSessionManager sessionManager, ISyncMessageBus eventBus, ILoggerFactory loggerFactory, IDomainHandlerMetaDataProvider metaDataProvider)
     : base(eventBus, loggerFactory, metaDataProvider)
 {
     //这里在构造函数中激活NHibernate的Session,
     //这样做的目的是确保在Castle提交事务时,不会有新的Session注册到Castle的事务上;
     //Castle不允许在提交事务的过程中再有创建Session的情况出现,否则会抛出资源竞争并发冲突异常。
     sessionManager.OpenSession();
 }
Ejemplo n.º 3
0
 public NHibernateUnitOfWork(INHibernateSessionManager sessionManager, ISyncMessageBus eventBus, ILoggerFactory loggerFactory, IDomainHandlerMetaDataProvider metaDataProvider)
     : base(eventBus, loggerFactory, metaDataProvider)
 {
     //这里在构造函数中激活NHibernate的Session,
     //这样做的目的是确保在Castle提交事务时,不会有新的Session注册到Castle的事务上;
     //Castle不允许在提交事务的过程中再有创建Session的情况出现,否则会抛出资源竞争并发冲突异常。
     sessionManager.OpenSession();
 }
 public ISession OpenSession()
 {
     _session = _nHibernateSessionManager.OpenSession();
     return(_session);
 }
Ejemplo n.º 5
0
 T IEntityManager.GetById <T>(object id)
 {
     return(_sessionManager.OpenSession().Get <T>(id));
 }