Si, Digamos que ademas en un sentido purista aceptar el codigo en los listeners implica que el modelo de negocios este atado a la capa de persistencia...algo que se trata de evitar en general...toda cosa que no puedo terminar en el domino me da igual que sea un trigger an la base o un eventlistener y trato de evitar el uso de cualquiera de estos, a favor de DomainEvents...
Gustavo. 2010/1/20 Carlos Peix <[email protected]> > Diego, > > Para que veas que soy un caballero: yo no disiento con vos. :-) > > Por supuesto que Diego tiene razon pero, conceptualmente, lo que señala es > el equivalente a un store procedure (mas precisamente un trigger) escrito en > C#. > > Puede funcionar pero no es recomendable en un diseño nuevo, desde cero. Al > menos en mi opinion. > > ---------------------------------- > Carlos Peix > > 2010/1/20 Diego Mijelshon <[email protected]> > > Disiento con Carlos respecto de si es _posible_ hacer esto, aunque estoy de >> acuerdo en que no es un muy buen diseño. >> >> Para lograr algo así, podrías usar un PostInsertEventListener que haga la >> actualización. >> Algo más o menos así (no testeado): >> >> void OnPostInsert(PostInsertEvent @event) >> { >> var linea = @event.Entity as Linea; >> if (linea != null) >> @event.Session.CreateQuery("update Producto set Stock = Stock - >> :cantidad where Id = :idProducto") >> .SetParameter("cantidad", linea.Cantidad) >> .SetParameter("idProducto", linea.Producto.Id) >> .ExecuteUpdate() >> } >> >> Así y todo, estarías usando un event listener, que es una herramienta de >> infraestructura de NHibernate para un concern específico de negocio, lo cual >> tiene bastante mal olor. >> >> Diego >> >> >> 2010/1/20 Edgar Ramos <[email protected]> >> >>> Saludos a todos >>> >>> >>> Como ejemplo similar el siguiente >>> >>> Tengo estas entidades, Venta, Linea (detalle de la venta), y Producto >>> (con su stock), y requiero hacer lo siguiente >>> >>> Al momento de crear Una venta e ingresar su Detalle (Linea), me >>> actualice el stock de cada uno de los productos (de Linea), >>> basicamente stock=stock-(cantidad digitada) >>> >>> Puedo hacer esto ? >>> >>> Cualquier comentario es bienvenido >>> >>> Gracias nuevamente >>> >>> -- >>> 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
