Respuesta

0

creo que la activerecord sessionScope puede manejar varias fábricas de diferentes tipos, pero Si no está utilizando que creo que sería bueno para pasar en cualquier tipo de clase que es una persistió uno:

ISession session = SessionScope.Current.GetSession(typeof (YourClass)); 
+0

gracias @jishi pero tengo este error: la clave no está en la colección. – manuellt

+0

¿Está utilizando ActiveRecordFacility con Windsor? – jishi

+0

gracias @jishi, no estoy usando ActiveRecordFacility con Windsor, pero probé una solución, la probé y va bien. gracias de nuevo. – manuellt

9

I r lo resolvió con este código:

 ISessionFactoryHolder holder = ActiveRecordMediator.GetSessionFactoryHolder(); 
     ISessionScope activeScope = holder.ThreadScopeInfo.GetRegisteredScope(); 
     ISession session = null; 
     var key = holder.GetSessionFactory(typeof(ActiveRecordBase)); 
     if (activeScope == null) 
     { 
      session = holder.CreateSession(typeof(ActiveRecordBase)); 
     } 
     else 
     { 
      if (activeScope.IsKeyKnown(key)) 
       session = activeScope.GetSession(key); 
      else 
       session = holder.GetSessionFactory(typeof(ActiveRecordBase)).OpenSession(); 
     } 
Cuestiones relacionadas