Compartir a través de


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.

Screenshot that shows the Solution Explorer window. Add is selected in the Models right click menu and Class is selected in the sub menu.

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.

Screenshot that shows the Solution Explorer window. Web dot config is circled in red.

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.