Gente, perdón que me meta en esta discusión,
pero quería preguntarles como resuelven por ejemplo la levantada de información
para un reporte ?, supongamos este mismo caso, un reporte de clientes donde una
de las columnas es el Vendedor. Ponen en movimiento todo el dominio para esto? Gracias. De: 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:
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] 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:
No te entiendo bien, tirá un ejemplo para
ubicarme en el caso. De: Esteban
A. Zibecchi [mailto:[EMAIL PROTECTED] Es cierto, el tema es cuando son en
cascada. Para eso mejor levantar la estructura y luego irla aplanando. Saludos Esteban From:
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] 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
|
- [patrones] Lazy Load Esteban A. Zibecchi
- [patrones] Lazy Load Sebastian Renzi
- [patrones] Lazy Load Esteban A. Zibecchi
- [patrones] Lazy Load Daniel Calvin