Lo mismo nos pasa a nosotros ya que implementamos
IdentityMap. En la operación de LazyLoad lo consultamos de manera indirecta ya
que el que maneja el IdentityMap es el mismo DataMapper.
Saludos
Esteban
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Diego Cepero
Sent: Sábado, 16 de Septiembre de 2006 08:08
To: patrones List Member
Subject: [patrones] Lazy Load
Ahora entiendo.
Imagino que el escenario en el que encontrás problemas
involucra la recuperación de gran cantidad de clientes, sin
embargo, para mí, en una asociación como esa no debería ser
tan costoso el lazy-load, porque normalmente existen pocos vendedores para
muchos clientes... entonces una muy buena parte de las peticiones de lazy-load
las estaría satisfaciendo el Identity Map.
Te pregunto entonces, ¿estás usando un identity map? ¿lo
consultás en la operación de lazy-load?
De: Esteban A. Zibecchi [mailto:[EMAIL PROTECTED]
Enviado el: Viernes, 15 de Septiembre de 2006 07:08 p.m.
Para: patrones List Member
Asunto: [patrones] Lazy Load
Supongamos que tenemos una entidad : Cliente que contiene a
otra entidad : Vendedor.
La solucion que estamos viendo es levantar Cliente y luego
cerrar el DataReader y recorrer los Clientes uno por uno y levantar entonces con
un nuevo DataReader su Vendedor.
Esto permite tener siempre un solo DataReader abierto
simultáneamente.
Saludos
Esteban
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Diego Cepero
Sent: Viernes, 15 de Septiembre de 2006 07:45
To: patrones List Member
Subject: [patrones] Lazy Load
No te entiendo bien, tirá un ejemplo para ubicarme en el
caso.
De: Esteban A. Zibecchi [mailto:[EMAIL PROTECTED]
Enviado el: Jueves, 14 de Septiembre de 2006 07:33 p.m.
Para: patrones List Member
Asunto: [patrones] Lazy Load
Es cierto, el tema es cuando son en cascada. Para eso mejor
levantar la estructura y luego irla aplanando.
Saludos
Esteban
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Diego Cepero
Sent: Jueves, 14 de Septiembre de 2006 08:05
To: patrones List Member
Subject: [patrones] Lazy Load
Hola Esteban,
Hasta donde sé, la única forma de tener
dos readers abiertos (en versiones de SQL Server anteriores a 2005), es que usen
conexiones distintas. Entonces, imagino que tus mappers deberían, en la
operación "LazyLoad()", abrir la conexión, cargar la relación y
después cerrar la conexión.
Un abrazo.
De: Esteban A. Zibecchi [mailto:[EMAIL PROTECTED]
Enviado el: Miércoles, 13 de Septiembre de 2006 06:31 p.m.
Para: patrones List Member
Asunto: [patrones] Lazy Load
Hi
Listeros!
Disculpen que
moleste con este tema pero mi experiencia es casi nula con respecto a ORMs y hay
algo que me llamó la atención del framework que usamos nosotros para
trabajar.
En nuestro
framework utilizamos DataMappers - siguiendo los consejos de Fowler - y lo que
noté es que cuando levanto las entidades SIEMPRE estoy recurriendo al uso del
LazyLoad.
Analizando por qué
siempre hacemos esto es porque en .NET no se pueden tener 2 DataReaders abiertos
y entonces cuando estoy levantando un cliente (por ejemplo), si quisiera
levantar su vendedor simultáneamente tendría que abrir otro DataReader y
pincha.....
Hay alguien que
esté usando DataMappers también? Cómo manejaron este problema? Y lo ORMs? que
hacen?
Saludos
Esteban