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.NETFrameworkv3.5EdmGen.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

4 comentarios sobre “Mejora del rendimiento de las consultas de los modelos EDM”

  1. 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!

  2. 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
    http://msdn.microsoft.com/en-us/library/bb896240.aspx

    Saludos
    Unai

Responder a rduarte Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *