martes, 2 de noviembre de 2010

NH 3.0 Lazy Load Properties

En enero de este año, Ayende nos sorprende con una nueva característica implementada en NH3.0 llamada "Lazy Properties"

Referente a esta característica existen los siguientes enlaces:

  • [NH-429] - Lazy load columns
  • [NH-2148] - Not possible to call methods on Proxy for lazy-property

El objetivo consiste en no cargar aquella propiedad del objeto marcada como "lazy" mientras no sea necesario. Se me ocurre algún contexto donde puede ser útil, como por ejemplo, alguna propiedad que almacene una imagen o alguna que guarde textos muy grandes (comentarios, descripciones, etc).


Para probarlo supongamos el siguiente fichero de mapeo donde establecemos la propiedad Name del User con el atributo lazy a true:


Con el siguiente ejemplo podremos comprobar como funciona esta nueva característica. Para ello realizo una consulta obteniendo el primer usuario que encuentre; en esta consulta se puede observar que no obtiene datos para la columna Name. Posteriormente se accede a la propiedad Name del objeto recuperado y es en este momento cuando necesita realizar una segunda consulta, puesto que en la primera no se había traído el dato.
Si no ves correctamente la imagen pulsa sobre ella o pulsa en este enlace.

Posiblemente le daremos bastante uso a esta nueva mejora !!!!

No hay comentarios: