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