0

Entity Framework Core 7 (EF7) Preview 3

Como no podía ser menos, tenemos novedades en Entity Framework Core de la mano de la preview 3. Además de correcciones de bugs, se ha lanzado una plantilla inicial para Scaffolding en database-first. Por otro lado, muchas mejoras de rendimiento y optimizaciones en el código generado que se ejecuta finalmente en el servidor SQL.

Pre-requisitos

  • ‎EF7 se dirige actualmente a .NET 6. Es probable que esto se actualice a .NET 7 a medida que nos acerquemos a la versión. ‎
  • ‎EF7 no se ejecutará en .NET Framework.‎

How to get EF7 previews

‎EF7 se distribuye exclusivamente como un conjunto de paquetes NuGet. Por ejemplo, para agregar el proveedor de SQL Server al proyecto, puede usar el siguiente comando mediante la herramienta dotnet:‎

dotnet add package Microsoft.EntityFrameworkCore.SqlServer –version 7.0.0-preview.3.22175.1

‎En la tabla siguiente se enlaza con la versión preliminar 3 de los paquetes EF Core y se describe para qué se utilizan.‎

Package‎Propósito‎
Microsoft.EntityFrameworkCore‎El paquete principal de EF Core que es independiente de proveedores de bases de datos específicos‎
Microsoft.EntityFrameworkCore.SqlServerDatabase provider for Microsoft SQL Server and SQL Azure
Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite‎Compatibilidad de SQL Server con tipos espaciales‎
Microsoft.EntityFrameworkCore.Sqlite‎Proveedor de base de datos para SQLite que incluye el binario nativo para el motor de base de datos‎
Microsoft.EntityFrameworkCore.Sqlite.Core‎Proveedor de base de datos para SQLite ‎‎sin‎‎ un binario nativo empaquetado‎
Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite‎Compatibilidad con SQLite para tipos espaciales‎
Microsoft.EntityFrameworkCore.Cosmos‎Proveedor de base de datos para Azure Cosmos DB‎
Microsoft.EntityFrameworkCore.InMemory‎El proveedor de base de datos en memoria‎
Microsoft.EntityFrameworkCore.Tools‎Comandos de EF Core PowerShell para la consola del Administrador de paquetes de Visual Studio; Utilice esto para integrar herramientas como ‎‎andamios‎‎ y ‎‎migraciones‎‎ con Visual Studio‎
Microsoft.EntityFrameworkCore.Design‎Componentes compartidos en tiempo de diseño para las herramientas de EF Core‎
Microsoft.EntityFrameworkCore.Proxies‎Proxies de carga diferida y seguimiento de cambios‎
Microsoft.EntityFrameworkCore.Abstractions‎Abstracciones desacopladas de EF Core; Utilice esta opción para funciones como anotaciones de datos extendidas definidas por EF Core‎
Microsoft.EntityFrameworkCore.Relational‎Componentes principales de EF compartidos para proveedores de bases de datos relacionales‎
Microsoft.EntityFrameworkCore.Analyzers‎Analizadores de C# para EF Core‎

‎Instalación de la interfaz de línea de comandos (CLI) de EF7‎

‎Antes de poder ejecutar la migración de EF7 Core o los comandos de scaffolding, debemos instalar el paquete cli como una herramienta global o local.‎

dotnet tool install --global dotnet-ef --version 7.0.0-preview.3.22175.1

‎Si ya tiene instalada la herramienta, puede actualizarla con el siguiente comando:‎

dotnet tool update --global dotnet-ef --version 7.0.0-preview.3.22175.1

‎Mejoras en el pipeline de actualizaciones‎

Pueden ver las mejoras realmente notorias sobre este tema dese los siguientes links:

Tomando el control del DBContext

La vista previa se agr4ega la capacidad de controlar cómo EF7 realizar ingeniería inversa o clases de Scaffolding para proyectos basados en bases de datos utilizando ‎‎plantillas T4‎‎. ¿Prefieres los setters «null bang»? ¿Inicializadores de propiedades? ¿Inicialización del constructor? Todas estas personalizaciones ahora son posibles. De hecho, no está limitado a generar las clases «tradicionales» dbContext y entity. Todo es posible, incluido el uso de las plantillas para generar documentación.‎

Podemos ver en detalle est funcionalidad en el video de la comunidad ‎La mejor manera de aprender sobre esta nueva característica es ver nuestro reciente standup de la comunidad: ‎‎Database-first con plantillas T4 en EF7‎‎. Además de generar código personalizado, la demostración muestra cómo crear una reducción de marca utilizando la sintaxis de Mermaid para generar diagramas ERD.‎

```mermaid
erDiagram
    ORDERMASTER ||--o{ ORDERDETAIL : owns
    ORDERDETAIL ||--|{ LINE-ITEM : contains
    ORDERMASTER }|..|{ CUSTOMER : uses
```

Conclusiones

Entity framework no para de sorprenderme. Siempre me pregunto ¿qué nueva funcionalidad se les ocurrirá ahora? y siempre me llevo una sorpresa con cada nueva versión de este. En futuros post veremos más en detalle qué cosas nuevas tiene este gran ORM.

Fernando Sonego

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *