studio - nhibernate vs entity framework
SaveOrUpdate Vs Update y Save en NHibernate (1)
Cuál es la diferencia entre SaveOrUpdate y Save / Update en NHibernate. ¿Por qué no usarías siempre SaveOrUpdate? Además, ¿cuál es el sentido de SaveOrUpdateCopy?
El Capítulo 9 cubre todo esto mejor que yo:
http://nhibernate.info/doc/nh/en/index.html
Pero las notas del acantilado:
Save()
toma un nuevo objeto sin identificador y lo asocia a la sesión. El objeto será INSERT
''d.
Update()
toma un objeto existente que tiene un identificador pero no está en la sesión y lo conecta a la sesión. El objeto será UPDATE
''d.
SaveOrUpdate()
mira el identificador y decide qué es necesario en lo anterior.
SaveOrUpdateCopy()
es especial porque dice que tiene dos objetos con el mismo identificador, uno en la sesión y otro no. Si intenta update
el que no está en la sesión, se lanza una excepción normalmente (ahora está tratando de adjuntar dos objetos que representan el mismo objeto persistente a la sesión). SaveOrUpdateCopy()
copia el estado del objeto sin sesión al estado del objeto de sesión.
No estoy seguro de cómo vas a usar NH, pero en muchos casos todo lo que necesitas es Save()
. La sesión está haciendo TODO el trabajo necesario para saber qué debe actualizarse y simplemente Flush()
o un Commit()
hace todo lo que necesita.