Gente he revizado todo y ahora si me despliega la informacion que
requeria, pero vamos por pasos, la alegria se complementa con sus
opiniones respecto a lo siguiente
1.- ISessionFactory es inyectada a mis dao/repository via el
constructor via el fw IoC como lo comentaba en el primer post, esta es
la clase que utilizo para tal efecto, algo asi de sencillo, por favor
sus comentarios
public class SessionFactoryProvider
{
private readonly Configuration configuration;
public SessionFactoryProvider() {
configuration = new Configuration();
configuration.Configure();
}
public ISessionFactory BuildSessionFactory() {
return configuration.BuildSessionFactory();
}
}
2.- Con Session per Request, al no hacer un bind de la session en el
context, recibi un mensaje como el siguiente no hay ninguna sesión
conectada al contexto actual, asi que la clase que hace esto posible
es la siguiente
public class NHibernateCurrentSessionWebModule : IHttpModule
{
#region Miembros de IHttpModule
public void Dispose() {
}
public void Init(HttpApplication context) {
context.BeginRequest += new EventHandler(Application_BeginRequest);
context.EndRequest += new EventHandler(Application_EndRequest);
}
#endregion
private void Application_BeginRequest(object sender, EventArgs e) {
ISession session =
ServiceLocator.Current.GetInstance<ISessionFactory>().OpenSession();
session.BeginTransaction();
CurrentSessionContext.Bind(session);
}
private void Application_EndRequest(object sender, EventArgs e) {
ISession session = CurrentSessionContext.Unbind(
ServiceLocator.Current.GetInstance<ISessionFactory>());
if (session != null)
try {
session.Transaction.Commit();
}
catch (Exception) {
session.Transaction.Rollback();
throw;
}
finally {
session.Close();
}
}
}
Esto tiene su respectiva configuracion en el Web.Config en la seccion
<httpModules>
3.- Verifique que en el archivo hibernate.cfg.xml, me faltaba lo
siguiente <mapping assembly="MM.Persistence.NH"/>
4.- Las clases expuestas aqui han sido creadas y configuradas en un
assembly especifico, (Infraestructure) MM.MM.Bootstrapper (sigue el
ejemplo de ChinookWP y GuyWire ), la pregunta que se me plantea es, al
ser este el lugar que cablea toda mi aplicacion, deben estar aqui
estas clases ?, o deben estar en otro assembly no se, por ejemplo que
la clase SessionFactoryProvider deba estar en el assembly donde estan
mis mappings, aqui tambien se encuentran las implementaciones de mis
dao/repository
Hay muchas mas preguntas, pero lo dejare para mas tarde
Muchas Gracias y Saludos
Edgar
El día 31 de mayo de 2010 10:31, José F. Romaniello
<[email protected]> escribió:
> Que disculpa ni disculpa!
> Todos los que participan en este foro quieren ayudar, y están para resolver
> justamente este tipo de inconvenientes que tiene la gente. Así que cualquier
> cosa que necesites mantenemos al tanto
> BTW; felicitaciones por la iniciativa de empezar un blog!
> El 31 de mayo de 2010 11:59, Edgar Ramos <[email protected]> escribió:
>>
>> Gracias a todos por la ayuda
>>
>> Estoy reaciendo el codigo nuevamente, José ya lo termino y vuelvo a
>> postear, estaba disgustado conmigo mismo frente a la frustración, esto
>> debe ser tan sencillo para muchos pero complicado para mi, mas cuando
>> le he tomado cariño a nh y a todo lo que se le relaciona.
>>
>> Quiero ser bueno en desarrollo y quiero aprender a utilizar bien nh
>> para poder ayudar a gente que debe estar en mi mismo nivel, hasta ya
>> me estoy animando abrirme un blog e ir comentando mis alegrias y
>> penurias
>>
>> saludos y disculpad mis comentarios
>>
>> Edgar
>>
>>
>> El día 31 de mayo de 2010 09:49, José F. Romaniello
>> <[email protected]> escribió:
>> > Bueno hay algo que me parece raro desde el vamos, y es que si realmente
>> > tuvieras un problema con el patrón session per request... no devolvería
>> > "count =0 " si no que te daría un error de que no hay ninguna sesión
>> > conectada al contexto actual.
>> > No obstante;
>> > 1-podrías mostrarnos tu clase "NHibernateCurrentSessionWebModule"
>> > 2-podrías mostrarnos el archivo hibernate.cfg.xml
>> > 3-Si pones un punto de interrupción, en el repositorio, justo cuando
>> > pedis
>> > la current sesión, obtenes algo de ese metodo?, obtenes una ISession?
>> > saludos
>> >
>> > --
>> > Para escribir al Grupo, hágalo a esta dirección:
>> > [email protected]
>> > Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>
>> --
>> Para escribir al Grupo, hágalo a esta dirección:
>> [email protected]
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano