Agregar un nuevo modelo
por Rick Anderson
Nota:
Existe una versión actualizada de este tutorial, disponible aquí, donde se usa la versión más reciente de Visual Studio. El nuevo tutorial usa ASP.NET Core MVC, que proporciona muchas mejoras en este tutorial.
En este tutorial se muestra ASP.NET Core MVC con controladores y vistas. Razor Pages es una nueva alternativa en ASP.NET Core 2.0, un modelo de programación basado en páginas que facilita la compilación de interfaces de usuario web y hace que sean más productivas. Se recomienda probar el tutorial de las páginas de Razor antes que la versión MVC. El tutorial de las páginas de Razor:
- Es más fácil de seguir.
- Abarca más características.
- Es el método preferido para el desarrollo de nuevas aplicaciones.
En esta sección, agregará algunas clases para administrar películas en una base de datos. Estas clases serán el elemento de modelo de la aplicación ASP.NET MVC.
Usará una tecnología de acceso a datos de .NET Framework conocida como Entity Framework para definir y trabajar con estas clases de modelo. Entity Framework (a menudo denominado EF) admite un paradigma de desarrollo denominado Code First. Code First le permite crear objetos de modelo mediante la escritura de clases simples. (También se conocen como clases POCO, de "objetos CLR sin formato antiguos", por sus siglas en inglés). Después, puede crear la base de datos sobre la marcha desde las clases, lo que permite un flujo de trabajo de desarrollo muy limpio y rápido. Si es necesario crear primero la base de datos, puede seguir este tutorial para obtener información sobre el desarrollo de aplicaciones de EF y MVC. A continuación, puede seguir el tutorial ASP.NET Scaffolding de Tom Fizmakens, que cubre el primer enfoque de la base de datos.
Adición de clases de modelo
En el Explorador de soluciones, haga clic con el botón derecho en la carpeta Modelos, seleccione Agregar y después Clase.
Escriba el nombre de clase "Película".
Agregue las cinco propiedades siguientes a la clase Movie
:
using System;
namespace MvcMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
}
Se usará la clase Movie
para representar películas en una base de datos. Cada instancia de un objeto Movie
se corresponderá con una fila dentro de una tabla de base de datos, y cada propiedad de la clase Movie
se asignará a una columna de la tabla de base de datos.
Nota: Para usar System.Data.Entity y la clase relacionada, debe instalar el paquete NuGet de Entity Framework. Siga el vínculo para obtener más instrucciones.
En el mismo archivo, agregue la siguiente clase MovieDBContext
:
using System;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
La clase MovieDBContext
representa el contexto de la base de datos de películas de Entity Framework, que controla la captura, el almacenamiento y la actualización de instancias de la clase Movie
en una base de datos. MovieDBContext
se deriva de la clase base DbContext
proporcionada por Entity Framework.
Para poder hacer referencia a DbContext
y DbSet
, debe agregar la siguiente instrucción using
en la parte superior del archivo:
using System.Data.Entity;
Para ello, agregue manualmente la instrucción "using" o puede mantener el puntero sobre las líneas onduladas rojas, hacer clic Show potential fixes
y hace clic en using System.Data.Entity;
Nota: Se han quitado varias instrucciones using
sin usar. Visual Studio mostrará las dependencias sin usar en gris. Puede quitar las dependencias sin usar si mantiene el puntero sobre las dependencias grises, hace clic en Show potential fixes
y hace clic en Quitar "Usings" sin usar.
Finalmente hemos agregado un modelo (el M en MVC). En la sección siguiente, trabajará con la cadena de conexión de la base de datos.