Share via


Agregar un modelo (C#)

De Rick Anderson

Este tutorial le enseñará los conceptos básicos para crear una aplicación web de ASP.NET MVC mediante Microsoft Visual Web Developer 2010 Express Service Pack 1, que es una versión gratuita de Microsoft Visual Studio. Antes de empezar, asegúrese de que ha instalado los requisitos previos que se enumeran a continuación. Para instalarlos todos, haga clic en el vínculo siguiente: Instalador de plataforma web. Como alternativa, puede instalar individualmente los requisitos previos mediante los vínculos siguientes:

Si usa Visual Studio 2010 en lugar de Visual Web Developer 2010, instale los requisitos previos haciendo clic en el vínculo siguiente: Requisitos previos de Visual Studio 2010.

Un proyecto de Visual Web Developer con código fuente de C# está disponible para acompañar este tema. Descargue la versión de C#. Si prefiere Visual Basic, cambie a la versión de Visual Basic de este tutorial.

Agregar un modelo

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. Class is selected in the sub menu.

Asigne a la clase el nombre Película.

CreateMovieClass

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 más información sobre DbContext y DbSet, vea Mejoras de productividad para 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.

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; } 
    }
}

Creación de una cadena de conexión y trabajo con SQL Server Compact

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). En la imagen siguiente se muestran los dos archivos Web.config; abra el archivo Web.config con un círculo 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=|DataDirectory|Movies.sdf" 
         providerName="System.Data.SqlServerCe.4.0"/>

En el ejemplo siguiente se muestra una parte del archivo Web.config con la nueva cadena de conexión agregada:

<configuration>
  <connectionStrings>
    <add name="MovieDBContext" 
         connectionString="Data Source=|DataDirectory|Movies.sdf" 
         providerName="System.Data.SqlServerCe.4.0"/>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=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.