Compartilhar via


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

por Rick Anderson

Observação

Uma versão atualizada deste tutorial está disponível aqui usando a versão mais recente do Visual Studio. O novo tutorial usa ASP.NET Core MVC, que fornece muitas melhorias ao longo deste tutorial.

Este tutorial ensina a usar o ASP.NET Core MVC com controladores e exibições. O Razor Pages é uma nova alternativa no ASP.NET Core, um modelo de programação baseado em página que torna a criação da interface do usuário da Web mais fácil e produtiva. Recomendamos que você experimente o tutorial do Razor Pages antes da versão do MVC. O tutorial Páginas do Razor:

  • É mais fácil de acompanhar.
  • Aborda mais recursos.
  • É a abordagem preferencial para o desenvolvimento de novos aplicativos.

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á. Na verdade, você não precisa especificar qual banco de dados usar, o Entity Framework usará o LocalDB como padrão. Nesta seção, adicionaremos explicitamente uma cadeia de conexão no arquivo Web.config do aplicativo.

SQL Server Express LocalDB

O LocalDB é uma versão leve do Mecanismo de Banco de Dados do SQL Server Express que inicia sob demanda e é executado no modo de usuário. O LocalDB é executado em um modo de execução especial de SQL Server Express que permite trabalhar com bancos de dados como arquivos .mdf. Normalmente, os arquivos de banco de dados LocalDB são mantidos na pasta App_Data de um projeto Web.

SQL Server Express não é recomendado para uso em aplicativos Web de produção. O LocalDB em particular não deve ser usado para produção com um aplicativo Web porque ele não foi projetado para funcionar com o IIS. No entanto, um banco de dados LocalDB pode ser facilmente migrado para SQL Server ou SQL Azure.

No Visual Studio 2017, o LocalDB é instalado por padrão com o Visual Studio.

Por padrão, o Entity Framework procura uma cadeia de conexão chamada igual à classe de contexto de objeto (MovieDBContext para este projeto). Para obter mais informações, consulte cadeias de conexão SQL Server para aplicativos Web ASP.NET.

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

Captura de tela que mostra a janela Gerenciador de Soluções e a configuração de ponto da Web está selecionada e circulada em vermelho.

Localize o <connectionStrings> elemento :

Captura de tela que mostra o código e o elemento de cadeia de conexão é circulado em vermelho.

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

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" 
   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)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031.mdf" providerName="System.Data.SqlClient" />
  <add name="MovieDBContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

As duas cadeias de conexão são muito semelhantes. A primeira cadeia de conexão é nomeada DefaultConnection e é usada para o banco de dados de associação controlar quem pode acessar o aplicativo. A cadeia de conexão que você adicionou especifica um banco de dados LocalDB chamado Movie.mdf localizado na pasta App_Data . Não usaremos o banco de dados de associação neste tutorial. Para obter mais informações sobre associação, autenticação e segurança, consulte meu tutorial Criar um aplicativo MVC ASP.NET com autenticação e banco de dados SQL e implantar no Serviço de Aplicativo do Azure.

O nome da cadeia de conexão deve corresponder ao nome da classe DbContext .

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

Na verdade, você não precisa adicionar a MovieDBContext cadeia de conexão. Se você não especificar uma cadeia de conexão, o Entity Framework criará um banco de dados LocalDB no diretório de usuários com o nome totalmente qualificado da classe DbContext (nesse caso MvcMovie.Models.MovieDBContext). Você pode nomear o banco de dados como quiser, desde que ele tenha o . Sufixo MDF . Por exemplo, poderíamos nomear o banco de dados MyFilms.mdf.

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.