el _session.BeginTransaction().Commit suena muy mal.

probaste haciendo lo razonable:

using (ITransaction tx = _session.BeginTransaction())
{
...

  tx.Commit();
}

Asumiendo que tenes el flushMode en Commit tiene que andar.
El get hacelo tambien en la misma transaccion...tenes que fijarte con el
nivel de isolation porque si estas usando readcommited y te agregan parents
en el medio podes tener problemas...no se cuan dinamico es.

Gustavo.

On Mon, Jan 12, 2009 at 12:15 PM, Raul Lopez <[email protected]> wrote:

>
> Hola, por favor si me pueden dar una mano con esto.
> La idea es borrar la coleccion en el child y sustituirla con una nueva pero
> hay algo mal y no me doy cuenta.
> Lo que esta haciendo es generar un solo registro colgado del ultimo parent.
>
> _parents =  _session.CreateCriteria(typeof(Parent)).List<Parent>();
>
> foreach(Parent p in _parents) {
>
>        p.Children.Clear();
>
> }
>
>
>
> Child c = new Child();
>
> c.Valor = 500;
>
> // agrega un child valor 500 a cada parent
>
> foreach(Parent p in _parents) {
>
>        p.AddChild(c);
>
>        _session.Update(p);
>
> }
>
> _session.BeginTransaction().Commit();
>
>
>
>
>
>
>
> del mapeo del parent
> ...
>
> <bag name="Children" inverse="true" cascade="all-delete-orphan">
>
>                        <key column="parent_id"/>
>
>                        <one-to-many class="Child"/>
>
> </bag>
> ...
>
>
>
> del mapeo del child
>
>
> ...
> <many-to-one name="Parent" column="parent_id" />
> ...
>
> Desde ya muchas gracias.
>
> Saludos,
> Raul
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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