No, mas bien algo como esto: http://www.udidahan.com/2009/06/14/domain-events-salvation/
<http://www.udidahan.com/2009/06/14/domain-events-salvation/>Listeners de NH para algo que no es especifico de datos como la creacion de un movimiento quiere decir que a una regla de negocios la estas todavia atendiendo a nivel de datos. A mi gusto Listeners de NH se pueden usar para auditoria, tracing, o cosas que son especificas de la capa de datos y que el dia que tiras la capa de datos no tienen mas utilidad para tu negocio. Con Domain Events la idea es en el momento en que pasa algo avisar que paso por ejemplo DomainEvents.FacturaGuardada(new FacturaGuardadaEvent() { Factura = factura, Detalles = detallesList }) Vos tenes en algun lado un SalvarMovimientosHandler : Handles<FacturaGuardadaEvent> y al atender el evento guarda un movimiento en la base por cada detalle. Gustavo. 2010/2/15 Roberto Ramírez <[email protected]> > Muchas gracias por la respuesta Gustavo, me queda claro lo que > comentas. > > Una cuestión pequeñita... ¿un evento de dominio == listeners de nh? > > On 15 feb, 10:51, Gustavo Ringel <[email protected]> wrote: > > No entiendo exactamente donde entra NH en la consullta. > > Es decir, el codigo que yo pienso para resolver eso al menos es > > independiente de la capa de persistencia, tambien los visitors de Jose > son > > independientes de la capa de persistencia. > > > > Creo que NH no es un factor para la decision de negocio. Podrias > > transformarlo en un factor si quisieras usar Listeners o alguna cosa > > especifica de NH para guardar el movimiento. > > > > En mi caso el servicio que guarda la factura y los detalles llama al > > Dao/Repositorio que sabe guardar una factura y sus detalles y se genera > un > > evento de dominio para cada detalle de factura. > > > > Otro componente recibe esos eventos y se encarga de guardar los > movimientos. > > > > Los visitors de Jose hacen algo parecido a eso, pero creo que tambien > Jose > > para esos casos favorece domain events hoy en dia :) > > > > Gustavo. > > > > 2010/2/15 Roberto Ramírez <[email protected]> > > > > > > > > > Buenos días a todos. > > > > > ¿Puedo resolver con nhibernate esto o es un error en mi modelo? > > > > > Yo guardo una factura con su respectivo detalle, dentro de mi modelo > > > yo necesito generar un movimiento en inventario y por cada movimiento > > > guardar la referencia del detalle de la factura así: > > > > > Factura ==> Detalle ==> Movimiento > > > > > El proceso del movimiento al inventario es un paso intermedio al > > > momento de guardar-actualizar mi factura. > > > > > En mi modelo, el detalle de la factura no conoce los movimientos en el > > > inventario, pero el movimiento si conoce a que detalle de factura > > > pertenece. > > > > > ¿Como identificar la referencia del detalle para insertarla en el > > > movimiento si todo se ejecuta en un solo request (Session-Per-Request) > > > y aun no conozco la referencia del detalle que se guardo en la base de > > > datos? > > > > > Uso Visitor como patron de diseño tomado del post de J. Rommaniello > > >http://jfromaniello.blogspot.com/2009/11/caso-practico-patron-visitor. > .. > > > , > > > el proceso del movimiento lo realizo en un Visitor. > > > > > Muchas gracias por su ayuda. > > > > > -- > > > 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
