Vos preguntaste si el codigo te iba a generar un tipo u otro de transaction,
y como te mostro luego Jose, no hay una relacion directa entre la
transaccion de NH y la transaccion de la base, pero al fin y al cabo se va a
a traducir a alguna de las opciones que vos dijiste, segun que haya
alrededor del servicio.

El codigo que usaste es un codigo de ejemplo que te puede servir para
entender como funciona o para hacer primeros testeos y aprender NH, pero no
te recomiendo usarlo en una aplicacion real.

Si abris commiteas y cerras la session cada vez que tenes que acceder a la
base, perdes todas las ventajas de usar un ORM, cualquiera sea.

Hay varios frameworks que podes ver en los posts de Fabio para manejar la
sesion de mejor manera segun si estas en windows o en web.

Saludos.

Gustavo.


2010/8/19 Sergio Tarrillo <[email protected]>

>  No me quedo claro la condición que mencionas.
>
>
>
> Por otro lado, el código lo saque de este artículo:
> http://nhforge.org/wikis/howtonh/your-first-nhibernate-based-application.aspx.
>
>
>
>
> Saludos,
>
> ----------------------------
> Sergio Tarrillo
> http://sergiot2.com/blog/
>
>
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Gustavo Ringel
> *Sent:* Jueves, 19 de Agosto de 2010 12:27 p.m.
> *To:* [email protected]
> *Subject:* Re: [NHibernate-Hispano] Sobre las transaciones en NH
>
>
>
> Depende, hay una ambient transaction atras, entonces puede enlistarse, no
> hay, abrira una SqlTransaction.
>
> Lo que si es seguro es que ese tipo de codigo es un ejemplo de codigo que
> no se debe escribir usando NH.
>
>
>
> Saludos.
>
>
>
> Gustavo.
>
> 2010/8/19 starrillo.prodac <[email protected]>
>
> Buenas tardes,
>
> Con respecto al siguiente código:
>
> ===================================
>  public void Add(Product product)
>        {
>            using (ISession session = NHibernateHelper.OpenSession())
>                using (ITransaction transaction =
> session.BeginTransaction())
>                {
>                    session.Save(product);
>                    transaction.Commit();
>                }
>        }
> ===================================
>
> el BeginTransaction va a iniciar una transaccion hacia la base de
> datos? Si por ejemplo estoy usando SQL-Server, que está usando:
>  1. System.Transactions
>  2. SqlTransaction
>  3. Lógica interna, pero ninguno de los componentes anteriores.
>
> Saludos,
>
> --
> 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

Responder a