Entity Framework tiene tres modos de trabajo: Database First, Model First y Code First. 

En esta ocasión os voy a mostrar cómo utilizar Code First, este modo de trabajo consiste en definir nuestras clases mediante código y será Entity Framework quien se encargue de generar la base de datos y todo lo necesario para encajar las clases en ella. 

Las clases se relacionan unas con otras simplemente haciendo referencia entre ellas en propiedades. 

En primer lugar os explicaré en que consiste este ejemplo, crearemos dos clases, una será la clase Comunidad Autónoma y en otra meteremos sus provincias para que finalmente las añada automáticamente en nuestra Base de Datos.

De esta forma realizaremos lo siguiente:

1) En primer lugar se crea un proyecto de tipo aplicación web ASP.NET (.NET Framework)

Captura01
Captura02

2) En segundo lugar sobre el proyecto, hacemos click en el botón derecho y pulsamos Administrar paquetes NuGet

Captura03

Seguidamente pulsamos sobre examinar e instalamos el NuGet de Entity Framework

Captura04

3) En tercer lugar vamos a crear las clases que vamos a utilizar en nuestro proyecto sobre la carpeta Models 

Primero haremos la clase Comunidad.cs 

Captura05
Captura06

4) En cuarto lugar tendremos que hacer dos using: 

using System.ComponentModel.DataAnnotations; 

using System.Web.DynamicData; 

De esta forma podremos utilizar los componentes de Entity Framework, primero tendremos que poner entre corchetes [TableName(«Comunidades»)], es por ello que podremos dar el nombre a la tabla del servidor.

Para poner la clave primaria en la tabla utilizaremos sobre el método [Key]

Como las tablas van a estar relacionadas se utiliza la palabra virtual, una comunidad tendrá una lista de comunidades y esto se indica haciendo referencia a la siguiente clase que tenemos que añadir (provincia.cs

public virtual List<Provincia> Provincias { get; set; } 

Captura07

5) En quinto lugar tendremos que hacer la clase provincia.cs de la misma manera. 

Por lo que la clave ajena será la que tenga el atributo virtual

Captura08

6) En sexto lugar agregaremos nuestra cadena de conexión de nuestra base de datos en nuestro Web.config 

Para ello en el explorador de servidores sobre conexiones de datos haremos click sobre Agregar conexión… 

Captura09

En esta pantalla hay que poner el localhost, en mi caso tengo autenticación de SQL Server y tengo que poner mi usuario y contraseña y debajo elegiremos nuestra base de datos (en este caso COMUNIDADES). 

Captura10

En las propiedades de la conexión que hemos creado se encuentra nuestra cadena de conexión, la cual tendremos que copiar y pegar en nuestro connectionStrings del Web.config, poniendolo un nombre como por ejemplo cadenacomunidades

Captura11

7) Crearemos una carpeta llamada Data en la que crearemos el contexto al que llamaremos ComunidadesContext, esta clase es la que une la base de datos con nuestro proyecto y debe heredar de la clase DbContext, por lo que tendremos que hacer un using System.Data.Entity;

Captura12
protected override void OnModelCreating(DbModelBuilder modelBuilder) 

        {             modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
        } 

Este método lo añadimos para que al crear la tabla no se pluralice el nombre. 

8) Ahora crearemos dos Controllers de tipo MVC 5 Controller  with viewsusing Entity Framework, uno llamado ComunidadesController y otro ProvinciasController

Captura13
Captura14
Captura15

Si lo hacemos así nos creará automáticamente todos los métodos y ya podríamos probarlo. 

Finalmente nuestro diagrama de tablas sería el siguiente:

Captura16

Y nuestra aplicación quedaría de la siguiente manera:

Captura17
Captura18

Alguno de los errores que nos podemos encontrar será que al realizar los controllers nos de un error y lo único que tendríamos que hacer sera un Build de nuestro proyecto y crearlo a continuación.

Autor: Paula María Bermúdez de la Puente Diéguez

Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin

Centro: Tajamar

Año académico: 2018-2019

Código / recursos utilizados / Otros datos de interés:

https://github.com/PaulaBermudez/EntityFrameworkCodeFirst  

Leave a Comment

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.