Usando Database First o Base de Datos Primero se parte desde una base de datos existente, es decir que ya tendríamos la base de datos diseñada con todo: tablas, campos, restricciones, incluso también datos y realizariamos el proceso inverso al Code First que consiste en crear los modelos (clases) para cada una de estas tablas. Database First permite aplicar ingeniería inversa a un modelo es decir a partir de una base de datos existente.
Si te gusta crear la base de datos primero o si estás en una empresa y ya hay una base de datos existente sobre la cual trabajar, entonces esta es la metodología a seguir. Obtendremos de igual manera las tablas como modelos de clases en nuestra aplicación, una vez hecho esto lo podremos convertir a Code First y a partir de aquí seguiremos trabajando con esta metodología.
En la siguiente imagen podemos ver a la izquierda tenemos la base de datos ya creada en SQL SERVER y a la derecha las clases que corresponden a cada una de esas tablas.

Ventajas de Trabajar con Database First
- Database First permite aplicar ingeniería inversa
- El trabajo es muy sencillo con visual studio y control de código
- Se puede seguir actualizando la base de datos a partir del modelo usando las migraciones, por ejemplo si necesitamos cambiar o eliminar una tabla en la base de datos se podrá hacer con una migración a pesar de que hayamos partido inicialmente desde una database first
- Usando entity framework core existen comandos para hacer ingeniería inversa y así lograr pasar la base de datos, tables y demás a clases de modelo usando sencillos comandos y personalizando nombres y organización de carpetas y c´ódigo.
Mira el siguiente video donde te explico que es Database First
Este artículo y contenido hace parte de mi curso: Entity Framework Core 6 el Curso Completo, donde aprenderás a trabajar con este poderoso ORM desde cero hasta avanzado.
Entity Framework Core el Curso Completo
