Entity Framework Core 3 incluye mejoras en el proveedor LINQ para traducir más consultas LINQ a una única instrucción SQL, lo que genera consultas más eficientes. También limita la evaluación de consultas en el cliente para prevenir resultados ineficientes y lanza excepciones si una consulta no puede traducirse completamente a SQL. Ofrece compatibilidad con nuevas características de C# 8 como secuencias asíncronas y tipos nullable.
3. Rediseño proveedor LINQ
REVISION DE LINQ
3
Rediseñado del proveedor LINQ para habilitar la conversión de más
patrones de consulta en SQL
Generación de consultas eficientes en más casos
Prevención de que las consultas ineficaces no se detecten
4. 4
VERSIONES ANTERIORES
EF Core identificada qué partes de una
consulta se podían traducir a SQL y
ejecutaba el resto de la consulta en el
cliente. Este tipo de ejecución en el lado
cliente es una opción interesante en
algunas situaciones, pero en muchos otros
casos puede dar lugar a consultas
ineficaces.
REVISION DE LINQ
EVALUACION CLIENTE LIMITADA
EF Core 3
Se limita la evaluación de cliente para que
solo suceda en la proyección de nivel
superior.
Si se detecta expresiones que no se
pueden traducir, produce una excepción
en tiempo de ejecución
5. 5
VERSIONES ANTERIORES
En ciertos casos se usa varias
instrucciones SQL.
Implementación compleja que produce
algunos comportamientos ineficaces.
EF CORE 3
Sino puede convertir una consulta LINQ
en una única instrucción SQL, se inicia
una excepción en tiempo de ejecución.
Capaz de traducir muchos de los
patrones comunes que solían generar
varias consultas en una sola consulta
con JOIN
REVISION DE LINQ
INSTRUCCIÓN DE SQL UNICA POR CONSULTA LINQ
7. 7
COMPATIBILIDAD C# 8
SECUENCIAS ASINCRONICAS
Los resultados de la consulta asincrónica se exponen ahora mediante la nueva interfaz de
await foreach estándar y se pueden usar con IAsyncEnumerable<T>
8. 8
COMPATIBILIDAD C# 8
TIPOS DE REFERENCIA NULLABLES
Las propiedades marcadas como de tipo string? se configurarán como opcionales
9. 9
INGENIERIA INVERSA DE VISTAS
Crea automáticamente tipos de entidades sin clave cuando se invierten las vistas de bases
de datos de ingeniería
dotnet ef dbcontext scaffold “<connection string>" Microsoft.EntityFrameworkCore.SqlServer
10. 10
ENTIDADES DEPENDIENTES COMPARTEN TABLA SON OPCIONALES
Si OrderDetails pertenece a Order o está asignado a la misma tabla explícitamente
Sera posible agregar Order sin OrderDetails
Todas las propiedades OrderDetails, salvo la clave principal, se asignarán a columnas que
aceptan valores NULL
Se establecerá OrderDetails en null si ninguna
de las propiedades necesarias tiene un valor
11. COMPATIBILIDAD COSMOS DB
11
Ventajas
distribución global
disponibilidad "AlwaysOn“
escalabilidad elástica
baja latencia
Los desarrolladores que están familiarizados con el modelo de programación de EF puedan
usar fácilmente Azure Cosmos DB como base de datos de aplicación
12. EF 6.3 en NET CORE
12
La versión más reciente de EF 6 se porta para que se ejecute en .NET Core 3.0
Compatibilidad con .NET Core 3.0
El paquete EntityFramework ahora tiene como destino .NET Standard 2.1 además de
.NET Framework 4.x.
Esto significa que EF 6.3 es multiplataforma y se admite en otros sistemas operativos además de
Windows, como Linux y macOS