Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Entity Framework 6 para Qué Sirve PDF
Entity Framework 6 para Qué Sirve PDF
Entity Framework 6
Jorge Bustos | j.bustos@danysoft.com, Servicios Profesionales
sp@danysoft.com | www.danysoft.com 18.04.2013
Entity Framework 6
¿Para qué sirve?
1
19/04/2013
Entity Framework
2
19/04/2013
Ejemplo de modelo
Fluent API
3
19/04/2013
Clave
Relación
Atributos
Convencion
es
4
19/04/2013
Ejemplito de código de EF
Leer
Guardar
5
19/04/2013
6
19/04/2013
Update Model
Update Database
Miedos a EF
1. No puedo ejecutar mis propias sentencias
– DbContext.SqlQuery/SqlQuery<T>
– Database.ExecuteSqlCommand
2 T
2. Tarda
d mucho h en arrancar y en ejecutar
j t consultas
lt
– generación de vistas más rápida
– vistas pregeneradas (con EF Power Tools)
– Mejora de cachés y otras optimizaciones de
consultas
3 No puedo utilizar procedimientos almacenados
3.
– Mapeo de procedimientos de DB a funciones C# en el
modelo
– Mapeo de Update, Insert, Delete en modelo POCO
7
19/04/2013
Más miedos a EF
4. Las consultas generadas no son óptimas
– Van mejorando
– Si la estructura de BD es demasiado compleja, usar
procedimientos
– Se pueden usar procedimientos almacenados
– La mayoría de las consultas son CRUD triviales
5. Difícil de coordinar el modelo con la BD
– Database First y Model First soportan Update from
M d l y Update
Model U d t Database
D t b
– POCO soporta migraciones manuales o automáticas
Y más miedos a EF
8
19/04/2013
Otro miedo:
Gestión de entidades relacionadas
La carga de entidades relacionadas soporta varias
modalidades:
– Carga diligente (eager loading)
• Carga hijos al cargar el padre
– Carga diferida (lazy loading)
• Carga hijos cuando va a accederse a ellos
– Carga explícita (explicit loading)
• Carga
g de la lista p
por código
g
– Consultas con proyecciones
• Carga con LINQ que proyecta hijos en una colección
Entity Framework
¿De dónde viene y a dónde va?
9
19/04/2013
Novedades en EF 6
Mejoras de rendimiento
– Generación de vistas más rápida
– Funcionamiento asíncrono: async/await de 4
4.5,
5 y
SaveChangesAsync()
Mejoras de programación
– Soporte de enum y datos espaciales en .NET 4
– “Resiliencia” de las conexiones ((importante
p p
para
servicios en la nube)
– Resolución de dependencias (Service Locator)
10
19/04/2013
Más novedades en EF 6
Mejoras de configuración
– Configuración por código (de EF, no del modelo,
además de por archivo.config)
– Esquema
E por d
defecto
f t
– Añadir configuración (Fluent API) desde ensamblado
– Servicios de pluralización de nombres personalizable
Y más novedades en EF 6
Mejoras de migraciones
– Configuración de tabla de migraciones
– Operaciones de migración personalizadas
Mejoras de transacciones
– Nivel de aislamiento p
por defecto =
READ_COMMITED_SNAPSHOT
– UseTransaction (trabajo con transacciones de DB activas)
– BeginTransaction (permite elegir el nivel de aislamiento)
11
19/04/2013
EF es Open Source
12
19/04/2013
Demo
13
19/04/2013
www.danysoft.com http://www.danysoft.com/visualstudio
14