Adicionando um modelo (2012)

por Rick Anderson

Observação

Uma versão atualizada deste tutorial está disponível aqui que usa ASP.NET MVC 5 e Visual Studio 2013. É mais seguro, muito mais simples de seguir e demonstra mais recursos.

Nesta seção, você adicionará algumas classes para gerenciar filmes em um banco de dados. Essas classes serão a parte "modelo" do aplicativo MVC ASP.NET.

Você usará uma tecnologia de acesso a dados .NET Framework conhecida como Entity Framework para definir e trabalhar com essas classes de modelo. O Entity Framework (geralmente chamado de EF) dá suporte a um paradigma de desenvolvimento chamado Code First. O Code First permite que você crie objetos de modelo escrevendo classes simples. (Elas também são conhecidas como classes POCO, de "objetos CLR simples e antigos".) Em seguida, você pode criar o banco de dados em tempo real a partir de suas classes, o que permite um fluxo de trabalho de desenvolvimento muito limpo e rápido.

Adicionando classes de modelo

Em Gerenciador de Soluções, clique com o botão direito do mouse na pasta Modelos, selecione Adicionar e, em seguida, selecione Classe.

Captura de tela que mostra a janela Gerenciador de Soluções. Adicionar está selecionado no menu Modelos com o botão direito do mouse e Classe está selecionada no sub menu.

Insira o nome da classe "Movie".

Adicione as cinco propriedades a Movie seguir à classe :

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

Usaremos a Movie classe para representar filmes em um banco de dados. Cada instância de um Movie objeto corresponderá a uma linha dentro de uma tabela de banco de dados e cada propriedade da Movie classe será mapeada para uma coluna na tabela.

No mesmo arquivo, adicione a seguinte MovieDBContext classe:

public class MovieDBContext : DbContext 
{
    public DbSet<Movie> Movies { get; set; } 
}

A MovieDBContext classe representa o contexto do banco de dados de filme do Entity Framework, que manipula a busca, o armazenamento e a atualização Movie de instâncias de classe em um banco de dados. O MovieDBContext deriva da DbContext classe base fornecida pelo Entity Framework.

Para poder referenciar DbContext e DbSet, você precisa adicionar a seguinte using instrução na parte superior do arquivo:

using System.Data.Entity;

O arquivo Movie.cs completo é mostrado abaixo. (Várias instruções de uso que não são necessárias foram removidas.)

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

Criar uma cadeia de conexão e trabalhando com LocalDB do SQL Server

A MovieDBContext classe que você criou manipula a tarefa de se conectar ao banco de dados e mapear Movie objetos para registros de banco de dados. Uma pergunta que você pode fazer, no entanto, é como especificar a qual banco de dados ele se conectará. Você fará isso adicionando informações de conexão no arquivo Web.config do aplicativo.

Abra o arquivo deWeb.config raiz do aplicativo. (Não é o arquivo Web.config na pasta Exibições .) Abra o arquivo Web.config descrito em vermelho.

Captura de tela que mostra a janela Gerenciador de Soluções. A configuração de ponto da Web é circulada em vermelho.

Adicione a cadeia de conexão a seguir ao <connectionStrings> elemento no arquivo Web.config .

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
   providerName="System.Data.SqlClient" 
/>

O exemplo a seguir mostra uma parte do arquivo Web.config com a nova cadeia de conexão adicionada:

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

Essa pequena quantidade de código e XML é tudo o que você precisa escrever para representar e armazenar os dados de filme em um banco de dados.

Em seguida, você criará uma nova MoviesController classe que pode ser usada para exibir os dados do filme e permitir que os usuários criem novas listagens de filmes.