entity-framework-code-first-y-data-first

Enfoques Code First y Data First en Entity Framework

  • 3 min

Como vimos en la introducción, en Entity Framework existen dos enfoques principales para configurar y gestionar una base de datos:

  • Data-First: Primero creamos la base de datos.
  • Code-First: Primero creamos las clases.

Estos métodos definen el flujo de trabajo. En particular cómo vamos a generar y sincronizar las clases de la aplicación y el esquema de la base de datos.

La primera decisión que tendremos que tomar en un proyecto con Entity Framework es es si queremos trabajar con uno o con otro.

Hay que elegir uno u otro. No son compatibles, ni algo que podamos cambiar en medio del proyecto (al menos no fácilmente).

En general, la opción más “moderna” es Code First. Pero, en realidad, ambas tiene sus ventajas, desventajas y casos de uso específicos.

En este artículo, vamos a comprar ambos enfoques, sus flujos de trabajo y cuándo es más conveniente utilizarlos 👇.

¿Qué es Data-First?

El enfoque Data-First (o Database-First) significa iniciar el desarrollo a partir de una base de datos ya existente.

Con Data-First,

  • Creamos a mano 🖐 la base de datos.
  • Generamos automáticamente 🤖 las clases de la aplicación.

Este enfoque es útil cuando se trabaja con una base de datos que ya ha sido diseñada o en proyectos donde la estructura de la base de datos es impuesta o manejada por un equipo separado.

¿Qué es Code-First?

El enfoque Code-First es el “caso opuesto”. Nos permite definir primero los modelos y las clases en el código, y luego generar o actualizar la base de datos automáticamente en base a estos modelos.

Con Code-First,

  • Creamos a mano 🖐 las clases de la aplicación
  • Generamos automáticamente 🤖 la base de datos .

Con Code-First, el código en C# es el que define la estructura de la base de datos. Esto nos permite un mayor control sobre las clases, relaciones y restricciones de la base de datos.

Al principio da un poco de vértigo que alguién “toquetee” la base de datos automáticamente.

No te preocupes, es normal, a todos nos ha pasado (y nos sigue pasando).

¿Cuándo usar Data-First y cuándo usar Code-First?

Entonces, ¿cuando usar uno u otro? En general, dependerá del contexto, del tipo de proyecto, y hasta de las preferencias del equipo.

Pero, en general,

  • Data-First es ideal para proyectos donde la base de datos ya existe y tiene una estructura definida.
  • Code-First es preferible para proyectos nuevos o en los que el equipo de desarrollo tiene control total sobre el modelo de datos y la evolución de la base de datos.