Mejora del rendimiento de las consultas de los modelos EDM

Tal y como se puede apreciar en el siguiente enlace dentro de los distintos costes relativos de trabajar con Entity Framework, una de las operaciones más pesada es la generación de vistas del modelo, generación que es única por dominio de aplicación. A lo largo de los siguientes puntos veremos cómo utilizar EDMGen para realizar una pre-generación de las mismas e incluirlas dentro de los proyectos de Entity Framework.

Como primer paso tenemos que disponer físicamente de los archivos csdl, msl y ssdl, que por defecto en la relase de EF se incrustan como archivos incrustados dentro del proyecto en el que tenemos un modelo EDM. Para hacer esto basta con seleccionar las propiedades de nuestro modelo de entidades y en la opción Metadata Artifact Processing, si tu Visual Studio está en inglés, seleccionar la opción Copy To Output Directory. Una vez que ya disponemos de nuestros los archivos de los tres espacios de EDM procederemos a ejecutar la herramienta EDMGen con las siguientes opciones:

"%windir%\Microsoft.NET\Framework\v3.5\EdmGen.exe" /nologo /language:CS /mode:ViewGeneration "/inssdl:[PATH].ssl" "/incsdl:[PATH].csdl" "/inmsl:[PATH].msl" "/outviews:[PATH_SALIDA.VIEWS].cs "

Desde aquí le recomiendo que pruebe la pre-generación de las vistas en los modelos, y si quiere automatizar este proceso dentro de un proyecto de Visual Studio le recomiendo también el siguiente post.

Saludos

Unai

Published 11/12/2008 17:31 por Unai
Comparte este post:
http://geeks.ms/blogs/unai/archive/2008/12/11/mejora-del-rendimiento-de-las-consultas-de-los-modelos-edm.aspx

Comentarios

# re: Mejora del rendimiento de las consultas de los modelos EDM

Realmente seria exelente esta parte.

Thursday, December 11, 2008 8:00 PM por Romny

# re: Mejora del rendimiento de las consultas de los modelos EDM

Hola Unai:

Thursday, December 11, 2008 8:20 PM por David Daniel Arroyo Zari "Ddaz"

# re: Mejora del rendimiento de las consultas de los modelos EDM

Unai, tengo unas dudas:

¿En qué escenarios puede no ser recomendable hacer esto? Si siempre fuese recomendable, lo lógico es que no tubiesemos que hacer 'a manopla'...

¿Qué ganancia debemos esperar? ¿Realmente merece la pena en todos los casos hacer esto?

Buen tip en cualquier caso.

¡Un saludo titán!

Friday, December 12, 2008 2:49 PM por Rodrigo Corral

# re: Mejora del rendimiento de las consultas de los modelos EDM

Las vistas se generan antes de ejecutar cualquier consulta o llamar al método SaveChanges para cualquiera de las entidades, aunque una vez generadas se guardan dentro del AppDomain, por lo que para subsiguientes consultas se reutilizan. Es recomendable hacerlo en escenarios donde los modelos sean grandes y/o tengan muchas asociaciones, propiedades de navegación. Este es uno de los procesos más costosos del trabajo con EDM, por lo que la ganancia es notable, aunque sea solamente para las primeras consultas.. Léete el siguiente enlace

msdn.microsoft.com/.../bb896240.aspx

Saludos

Unai

Friday, December 12, 2008 6:00 PM por Unai