DBFirst
El diseño Database First en Entity Framework Core (EF Core) es un enfoque que se utiliza cuando necesitamos convertir nuestro modelo de base de datos en clases para ser consumidas por nuestra aplicación1. Este enfoque es muy útil para conectar nuevos proyectos con bases de datos existentes, una característica muy importante cuando el software se está migrando a una nueva tecnología1.
EF Core es el ORM (Object Relational Mapper) más potente de Microsoft que ayuda a las aplicaciones de software a mapear, conectar y administrar entidades con una amplia gama de bases de datos1. EF Core ofrece dos opciones para conectar tus entidades a la base de datos: Code First y Database First1.
- Code First: Escribe las entidades de tu proyecto primero y luego refleja esos objetos en la base de datos. Esta opción crea la base de datos basada en el código1.
- Database First: Necesitas tener tu base de datos, previamente creada, para conectarla a una nueva aplicación. Esta opción crea el código de clase basado en el modelo de base de datos1.
Aquí te dejo un ejemplo de cómo puedes usar el enfoque Database First en EF Core:
PM> Scaffold-DbContext "Server= (localdb)mssqllocaldb;Database=DatabaseName;Trusted_Connection=True;" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context NorthwndContext -Tables Products,Categories,Suppliers, NUEVA_TABLA, NUEVA_TABLA2 -Force
Este comando genera las entidades y los contextos de datos utilizando una herramienta de línea de comandos2. En este caso, estamos conectando a una base de datos existente llamada DatabaseName
y generando clases para las tablas Products
, Categories
, Suppliers
, NUEVA_TABLA
, NUEVA_TABLA2
en el directorio Models
2. El contexto de la base de datos se llama NorthwndContext
2.
https://www.entityframeworktutorial.net/efcore/create-model-for-existing-database-in-ef-core.aspx
Línea de comandos más simple:
Scaffold-DbContext “Data Source=DESKTOP-B3NEDPH;Initial Catalog=pruebas;Integrated Security=True;TrustServerCertificate=True” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
https://learn.microsoft.com/es-es/ef/core/managing-schemas/scaffolding/?tabs=dotnet-core-cli