Entity Framework: primer enfoque de la base de datos

En este capítulo, aprendamos a crear un modelo de datos de entidad con el enfoque Database First.

  • El enfoque de Database First proporciona una alternativa a los enfoques Code First y Model First para el modelo de datos de entidad. Crea códigos de modelo (clases, propiedades, DbContext, etc.) a partir de la base de datos en el proyecto y esas clases se convierten en el enlace entre la base de datos y el controlador.

  • El primer enfoque de la base de datos crea el marco de la entidad a partir de una base de datos existente. Usamos todas las demás funcionalidades, como la sincronización de modelo / base de datos y la generación de código, de la misma manera que las usamos en el enfoque Model First.

Tomemos un ejemplo sencillo. Ya tenemos una base de datos que contiene 3 tablas como se muestra en la siguiente imagen.

Step 1 - Creemos un nuevo proyecto de consola con el nombre DatabaseFirstDemo.

Step 2 - Para crear el modelo, primero haga clic con el botón derecho en el proyecto de su consola en el explorador de soluciones y seleccione Agregar → Nuevos elementos ...

Step 3 - Seleccione ADO.NET Entity Data Model en el panel central e ingrese el nombre DatabaseFirstModel en el campo Nombre.

Step 4 - Haga clic en el botón Agregar, que abrirá el cuadro de diálogo Asistente de modelo de datos de entidad.

Step 5 - Seleccione EF Designer de la base de datos y haga clic en el botón Siguiente.

Step 6 - Seleccione la base de datos existente y haga clic en Siguiente.

Step 7 - Elija Entity Framework 6.xy haga clic en Siguiente.

Step 8 - Seleccione todas las vistas de tablas y el procedimiento almacenado que desee incluir y haga clic en Finalizar.

Verá que el modelo de entidad y las clases de POCO se generan a partir de la base de datos.

Ahora recuperemos a todos los estudiantes de la base de datos escribiendo el siguiente código en el archivo program.cs.

using System;
using System.Linq;

namespace DatabaseFirstDemo {

   class Program {

      static void Main(string[] args) {

         using (var db = new UniContextEntities()) {

            var query = from b in db.Students
               orderby b.FirstMidName select b;

            Console.WriteLine("All All student in the database:");

            foreach (var item in query) {
               Console.WriteLine(item.FirstMidName +" "+ item.LastName);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
         }
      }
   }
}

Cuando se ejecuta el programa anterior, recibirá el siguiente resultado:

All student in the database:
Ali Khan
Arturo   finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...

Cuando se ejecuta el programa anterior, verá todos los nombres de los estudiantes que se ingresaron previamente en la base de datos.

Le recomendamos que ejecute el ejemplo anterior paso a paso para una mejor comprensión.