Muchas gracias Fabricio y Diego, hacia falta asignar a mi mapping
dynamic-update="true",

Al parecer me hizo falta un poco de lectura en la API, y lo pase sin darme
cuenta...

¿No tiene desventajas hacerlo de este modo?

Saludos..

J. Roberto Ramírez
www.robertoramirez.com.mx
Social Media [image: Linkedin]
<http://www.linkedin.com/in/jramirezleyva>[image:
Twitter] <http://twitter.com/bobbher>


2010/5/7 Diego Mijelshon <[email protected]>

> J. Roberto,
>
> El comportamiento por defecto de NH es hacer un update de todos los campos
> con los valores actuales.
> Si quieres que mande sólo los campos modificados, tienes que
> incluir dynamic-update="true" en el elemento <class>.
> Ver http://nhforge.org/doc/nh/en/index.html#mapping-declaration-class (7)
>
>    Diego
>
>
> 2010/5/7 J. Roberto Ramírez <[email protected]>
>
>>  Buenas tardes a todo el grupo.
>>
>> Tengo una duda en relación a como nuestro querido NH se comporta en los
>> Updates.
>>
>> Supongamos que yo tengo una clase Persona.cs.
>>
>> public class Persona {
>>  private Int64 _id;
>>  private String _nombre;
>>  private String _apellidoPaterno;
>>  private String _apellidoMaterno;
>> }
>>
>> Por supuesto su respectivo mapping:
>>
>> <?xml version="1.0" encoding="utf-8" ?>
>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core"
>> namespace="Core">
>>   <class name="Persona" table="tblPersonas" lazy="false">
>>     <id name="Id" column="id" type="System.Int64" unsaved-value="0">
>>       <generator class="identity" />
>>     </id>
>>     <property name="Nombre" column="nombre" type ="System.String" />
>>     <property name="ApellidoPaterno" column="apellidoPaterno" type
>> ="System.String" />
>>     <property name="ApellidoMaterno" column="apellidoMaterno" type
>> ="System.String" />
>>   </class>
>> </hibernate-mapping>
>>
>> Tengo un fragmento de código en mi aplicación como el siguiente:
>>
>> using(var s = sessions.OpenSession())
>>   using(var tx = s.BeginTransaction()) {
>>     var persona = s.Get<Persona>(1);
>>     persona.Nombre = "Nuevo nombre";
>>     tx.Commit();
>>   }
>> }
>>
>> Quisiera saber porque NH al hacer hit a la base de datos me esta haciendo
>> un update a todos los campos de la tabla de Personas:
>>
>> UPDATE tblPersonas SET nombre = "Nuevo nombre", apellidoPaterno =
>> "Apellido actual", apellidoMaterno = "Apellido actual" WHERE id = 1
>>
>> ¿Hay manera de evitar esto? ¿Hay modo de únicamente decirle a NH que de la
>> tabla Personas el único registro modificado fue el Nombre? ¿Si es así hacer
>> update solamente sobre el campo Nombre?
>>
>> Muchas gracias a todos.
>>
>>
>> J. Roberto Ramírez
>> www.robertoramirez.com.mx
>> Social Media [image: Linkedin] 
>> <http://www.linkedin.com/in/jramirezleyva>[image:
>> Twitter] <http://twitter.com/bobbher>
>>
>>  --
>> 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