En estos
días inmersos como estamos en pleno lanzamiento de Visual
Studio 2010 y del
Framework 4, me
gustaría pararme a revisar algunas novedades (solo una pequeña muestra) que nos ofrece la nueva versión del
Entity Framework.
Soporte para POCO (Plain Old Clr Object)
La nueva versión del
EF soporta
nativamente POCO, esto es una importante mejora (muy solicitada por parte de la comunidad) para los desarrollos orientados a pruebas
TDD, esto es posible debido a que eliminamos cualquier dependencia de nuestras entidades con el
EF, ya no
tendran que tener propiedades como el
EntityKey o implementar interfaces especificas del
EF.
Más información:
Mejoras en el Diseño del Entity Model
Ademas de la opción de crear el modelo a partir de la base de datos (
Database-First)
EF4 incluye
Model-First que permite comenzar diseñando las entidades en el
Entity Designer y posteriormente generar la base de datos y loas clases a partir del ahí.
Asociación de Foreign Key
EF4 incluye un nuevo tipo de asociación llamado
Foreign Key Asociation que permite incluir
Fk en el modelo y usarlas para relacionar las entidades. Las
Asociaciones independientes de
EF 3.5
todavía son soportadas pero sin duda las
asociciaciones FK simplifican mucha más el modelo y su
usabilidad. Para leer mas acerca de esta
característica aquí.
Soporte carga tardía (lazy loading)
EF4
soport la carga tardía de objetos. Por defecto cuando se crea un nuevo modelo en
VS2010 esta propiedad esta activada. Esto provoca que cuando realizamos una consulta y nos devuelve una colección de objetos, estos no son cargados
automaticamente sino que hasta que a medida que cada uno de ellos es utilizado se van cargando. En el siguiente ejemplo, los objetos no son cargados hasta que no se utiliza para escribir una de sus propiedades.
List customers = context.Customers.ToList(); context.ContextOptions.DeferredLoadingEnabled = true;
foreach (Customer cust in context.Customers)
Console.WriteLine("Customer {0}, Account {1}",
cust.Person.LastName.Trim() + ", " + cust.Person.FirstName, cust.AccountNumber);
Patrones y Tesetabilidad
EF4 incluye una
interface adicional que facilita la escritura de código orientado a pruebas usando el
framework. Además para facilitar las pruebas ahora es posible el uso de patrones como el
Repository y el
UnitOfWork.
Más información en Entity Framework 4.0 Testeability Improvements.