Posts recientes

El contenido de este blog tiene una licencia Creative Commons.
Creative Commons

Consejos para mejorar el rendimiento de tu Entity Framework (II)   

Pre-generar las vistas.
Para que una consulta se pueda ejecutar con un Entity Data Model (EDM), el Entity Framework (EF) genera un conjunto de vistas que se utilizan para tener acceso a la base de datos.
El EF genera vistas las primera vez que se ejecuta una consulta, y se mantiene durante toda la vida de  la instancia del ObjectContext, pero este proceso es el más costoso de toda la consulta, ya que tarda aproximadamente un 50% de la operación total.  Por eso, EF premite generar previamente estas vistas e incluirlas en el proyecto compilado, aunque esto también tiene una desventaja, y es que implica que hay que tener las vistas sincronizadas con los cambios del modelo de datos.
Las vistas pre-generadas se validan en tiempo de ejecución para asegurarse de que son coherentes con la versión actual de EDM, pero se puede omitir si el proceso de generación está generando los archivos de asignación y modelo en el directorio de salida (en el Explorador de Modelos, en la ventana propiedades, cambiar la opción "Procesamiento de artefactos de metadatos" a "Copiar en el directorio de resultados" y recompilar).
Para pre-generarlas se usa una herramienta llamada "Generador de EDM", que suele estar en Windows\Microsoft.NET\Framework\v3.5 y se llama EdmGen.exe si no lo encuentras Microsoft facilita su descarga desde aquí).
Para generar las vistas y agregarlas a un proyecto C# se usa esta  herramienta de línea de comandos con un el parámetro de generación de vistas (/mode:ViewGeneration).
"%windir%\Microsoft.NET\Framework\v3.5\EdmGen.exe" 
    /mode:ViewGeneration 
    /language:CSharp 
    /nologo 
    "/inssdl:MyEntityModel.ssdl" 
    "/incsdl:MyEntityModel.csdl" 
    "/inmsl:MyEntityModel.msl" 
    "/outviews:MyEntityModel.Views.cs"
También se puede hacer desde la Consola de comandos del VS2008 (Inicio -> todos los programas -> MSVS2008 -> VS Tools -> VS2008 Command Prompt).
O bien:
1. En el Explorador de soluciones, seleccione el proyecto para el que desea especificar el evento de generación.
2. En el menú Proyecto, haga clic en Propiedades.
3. Seleccione la ficha Generar eventos.
4. la ventana Línea de comandos del evento anterior a la compilación, agregue el "evento anterior a la generación" añadir el comando anterior (en azul) sin saltos de línea.
5. Genere la solución.
Para volver a agregar los archivos de asignación y modelo como recursos incrustados para los proyectos ASP.NET, modifique el parámetro Metadata del atributo connectionString (puede encontrar más información sobre cómo hacer esto en esta entrada anterior de este blog)
 
 
 
Publicado  en  04/02/2010  por  Isabel Cabezas
0  Comentarios  |  Trackback Url  | 0  Enlaces a este post | Bookmark este post con:          
Etiquetas: ASP.NET, C#, Entity Framework
Technorati Tags: , ,
 

Vinculos a este post

Comentarios