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

Responder a