Mejoras en Entity Framework 4

Gracias al feedback recibido por gran parte de la comunidad de desarrolladores, la siguiente versión de EF (2.0 aunque finalmente será llamada 4.0 para alinearla con el Framework) incorporará un montón de novedades interesantes. Os dejo con una lista de las más interesantes:

Foreign Keys

Ahora Entity Framework incluye soporte para foreign keys. Esto permitirá incluir estas propiedades en nuestras entidades, simplificando algunos escenarios, como la vinculación de datos o el desarollo en N-Capas. En el siguiente ejemplo se inicializa una entidad, usando una propiedad de tipo foreign key:

using (BlogEntities ctx = new BlogEntities()) {
    Post myPost = new Post {    
        PostID = 102,
        PostName = "Post Title",
        CreatedDate = DateTime.Now,
        PostContent = "Post Content",
        BlogID = 11
    };
    ctx.Posts.AddObject(myPost);
    ctx.SaveChanges();
}
 

Notar que a pesar de que el objeto Blog con BlogId = 11 no se carga en ningún momento, somos capaces de conectarlo al nuevo post directamente.

Soporte para Lazy Binding (carga perezosa)

Entity Framework incluye ahora soporte para carga perezosa. Cuando creamos un nuevo modelo de datos con Visual Studio 2010, las entidades que ofrecen carga perezosa son generadas por nosotros. Este tipo de carga (que está activada por defecto) no carga cada objeto devuelto hasta que se usa. Por ejemplo, en el código siguiente, cada uno de los posts no se carga hasta que se imprime su propiedad PostName:

using (var ctx = new BlogEntities()) {
    foreach (var b in ctx.Blogs) {
        Console.WriteLine(b.BlogName);
        //Note that we don't explicitly load the posts for the current blog, 
        //the EF does it 'lazily' for us.
        foreach (var p in b.Posts)
            Console.WriteLine(p.PostName);
    }
}
 

Soporte para POCO

Ahora Entity Frameworkofrece soporta Plain Old CLR Object Support (POCO) para las entidades. Esto es una mejora en entornos TDD (test-driven development) o DDD (domain-driven design), que permite eliminar dependencias de EF en nuestras entidades. Para más información acerca de esta característica, darle un vistazo a los walkthroughs postedados en el ADO.NET blog.

Text Template Transformation Toolkit Code Generation

En la primera versión de Entity Framework, la generación de código no permitía demasiada personalización, y no estaba integrada en Visual Studio. En cambio, ahora EF soporta Text Template Transformation Toolkit (también llamada T4), que permite la personalización del código generado. Haciéndolo sencillo, flexible y muy potente. La integración con VS es total, de modo que para definir la estrategia de la generación de código basta con hacer click con el botón derecho sobre el diseñador de Entity Framework y seleccionar ‘Add Code Generation Item…’:

AddCodeGenerationSmall

Lo mejor de todo es que no estamos limitados a las plantillas que vienen con Visual Studio, si no que podemos escribir nuestras propias plantillas T4, o modificar las plantillas que vienen por defecto, para mejorar la generación de código a nuestro gusto.

Mejor soporte N-Capas

Un diseño en N-Capas te permite separar los datos, logica e negocio y las capas de interacción con el usuario, para asegurar la integridad de los datos y mejorar el mantenimiento de cada capa. El equipo de EF ha recibido muchas peticiones para mejorar el soporte de N-Capas. Ellos han recogido este feedback y han implementado mejoras en el API para permitir diseño N-Capas, como plantillas para la generación de código, que generan objetos que contienen características N-Capas, como el demandado control de cambios. La plantilla genera éstas entidades como un conjunto de clases del CLR con atributos de serialización de Windows Communication Foundation (WCF), para poder ser usados en conjunción con los servicios WCF.

Majoras en la generación del código SQL:

El equipo de EF está constantemente tratando de mejorar la claridad y el rendimiento del código SQL generado. Así, se han implementado un gran número de éstas pequeñas mejoras al código generado por EF4. Desde la eliminación de algunos JOINS *extraños*, hasta el uso de los carácteres comodín en las cláusulas WHERE. Por ejemplo, el siguiente ejemplo se traducirá en una consulta SQL que usa una cláusula WHERE con un LIKE y un carácter ‘%’ para devolver todos los blogs cuyo nombre comienza por “Visual Studio”:

var query = from b in ctx.Blogs
            where b.BlogName.StartsWith("Visual Studio")
            select b;
 

Soporte ampliado para procedimientos almacanados

Muchas bases de datos contienen procedimientos almacenados que realizan tareas personalizadas. Ahora EF nos permitirá crear funciones en nuestro modelo de entidades que llamen a éstos procedimientos almacenados mediante la característica ‘Add Function Import’. Esta característica permitirá detectar las columnas que retorna un procedimiento almacenado y crear un tipo complejo personalizado. Y lo más importante, también permitirá actualizar tipos complejos ya existentes a la definición del tipo devuelto por un procedimiento almacenado:

AddFunctionImport

Entity Framework 4 ofrece estas y otras nuevas características para incrementar la productividad de los desarrolladores. Comparte tus ideas con el equipo de desarrollo de EF en el foro del proyecto, o contacta con ellos en sus blogs de diseño o del equipo. Y pos supuesto, dale un vistazo a los videos y screencasts disponibles en Channel 9.

Nota: Traducido ‘al vuelo’ desde el blog de Somasegar. Consulta el artículo original.

 

 

 

 

 

Saludos desde Andorra a –8º :-S

** crossposting desde el blog de Lluís Franco en geeks.ms **

2 thoughts on “Mejoras en Entity Framework 4

  1. ¿Sabes si ha mejorado el soporte de importacion de funciones?

    De momento solo es importaban en el modelo fisico, pero no en el logico. Lo cual me significo una perdida de funcionalidad que si tenia en Linq2SQL

Leave a Reply

Your email address will not be published. Required fields are marked *