Hola José, yo también estoy trabajando en un escenario similar y opté por la opción 2; el objeto que inyecto es un ISessionManager de la NH Facility de Castle... como también estas usando Castle, quizá te sirva pegarle una mirada. Este camino también te da soporte para utilizar los atributos de Castle.Services.Transaction para delimitar las transacciones de forma declarativa.
2009/4/13 Fabio Maulo <[email protected]> > > > El 13 de abril de 2009 14:01, JoseFR <[email protected]> escribió: > >> >> (perdón por el titulo no es muy descriptivo) >> >> Hice una implementación de ICurrentSessionContext para WCF, (estoy >> abriendo una sesión por cada llamada a servicio). La implementación >> que hice de ICurrentSessionContext funciona ok, toma la sesión desde >> "OperationContext.Current.Extensions" abierta en un >> ICallContextInitializer . BeforeInvoke.. Nada de esto tiene que ver >> con lo que voy a preguntar pero es el contexto.... >> >> Mi pregunta sería cual de estas alternativas consideran >> conceptualmente mejor: >> >> 1. Inyectar el SessionFactory directamente en los daos y llamar >> GetCurrentSession() para obtener la sesión. > > >> 2 tener una clase en la cual se inyecte el sessionfactory que tenga un >> solo metodo para obtener la session. Y sea esta clase quien se inyecte >> en los dao. >> 3. Inyectar en los dao una sesión, instruir al container (estoy usando >> castle) que para resolver eso debe llamar a >> sessionfactory.GetCurrentSession() cada vez.. (si conocen el como de >> esta, les estaría agradecido). >> > > > La 1.Para la 3 tenes que usar la FactoryFacility con configuración XML. > > -- > Fabio Maulo > > > > --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
