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

Responder a