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