Adición de un modelo (2012)
por Rick Anderson
Nota:
Aquí hay disponible una versión actualizada de este tutorial en la que se usa ASP.NET MVC 5 y Visual Studio 2013. Es más segura, mucho más sencilla de seguir y muestra más características.
En esta sección, agregará algunas clases para administrar películas en una base de datos. Estas clases serán el elemento "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"). 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.
Adición de clases de modelo
En el Explorador de soluciones, haga clic con el botón derecho en la carpeta Models, seleccione Agregar y después Clase.
Escriba el nombre de clase "Movie".
Agregue las cinco propiedades siguientes a la clase Movie
:
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 d base de datos.
En el mismo archivo, agregue la siguiente clase MovieDBContext
:
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;
A continuación se muestra el archivo Movie.cs completo. (Se han quitado varias instrucciones using que no son necesarias).
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; }
}
}
Crear una cadena de conexión y trabajar con SQL Server LocalDB
La clase MovieDBContext
que ha creado controla la tarea de conexión a la base de datos y la asignación de objetos Movie
a los registros de la base de datos. Pero seguramente se pregunte cómo especificar a qué base de datos se conectará. Para ello, agregará información de conexión en el archivo Web.config de la aplicación.
Abra el archivo Web.config raíz de la aplicación. (No el archivo Web.config de la carpeta Views). Abra el archivo Web.config resaltado en rojo.
Agregue la siguiente cadena de conexión al elemento <connectionStrings>
del archivo Web.config.
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
En el ejemplo siguiente se muestra una parte del archivo Web.config con la nueva cadena de conexión agregada:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcMovie-2012213181139;Integrated Security=true"
providerName="System.Data.SqlClient"
/>
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
Esta pequeña cantidad de código y XML es todo lo que necesita para representar y almacenar los datos de película en una base de datos.
A continuación, creará una clase MoviesController
que puede usar para mostrar los datos de películas y permitir a los usuarios creen descripciones de películas.