Entity Framework Code First
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)
2) En segundo lugar sobre el proyecto, hacemos click en el botón derecho y pulsamos Administrar paquetes NuGet
Seguidamente pulsamos sobre examinar e instalamos el NuGet de Entity Framework
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
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; }
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.
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…
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).
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”.
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;
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 views, using Entity Framework, uno llamado ComunidadesController y otro ProvinciasController.
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:
Y nuestra aplicación quedaría de la siguiente manera:
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