Создание строки подключения и работа с SQL Server LocalDB

Рик Андерсон

Примечание

Обновленная версия этого руководства доступна здесь с использованием последней версии Visual Studio. В новом руководстве используется ASP.NET Core MVC, который предоставляет множество улучшений по сравнению с этим руководством.

В этом руководстве описывается модель MVC ASP.NET Core с контроллерами и представлениями. Razor Pages — это новая альтернатива в ASP.NET Core, страничной модели программирования, которая упрощает и повышает эффективность создания пользовательского веб-интерфейса. Мы рекомендуем ознакомиться с руководством по Razor Pages до версии MVC. Руководство по Razor Pages:

  • проще для выполнения;
  • охватывает дополнительные возможности;
  • Является предпочтительным подходом для разработки новых приложений.

Создание строки подключения и работа с SQL Server LocalDB

Созданный MovieDBContext класс обрабатывает задачу подключения к базе данных и сопоставления Movie объектов с записями базы данных. Один из вопросов, которые вы можете задать, заключается в том, как указать, к какой базе данных она будет подключаться. На самом деле вам не нужно указывать, какую базу данных следует использовать. Entity Framework будет по умолчанию использовать LocalDB. В этом разделе мы явно добавим строку подключения в файлWeb.config приложения.

SQL Server Express LocalDB

LocalDB — это упрощенная версия ядра СУБД SQL Server Express, которая запускается по запросу и работает в пользовательском режиме. LocalDB выполняется в специальном режиме выполнения SQL Server Express, который позволяет работать с базами данных в виде MDF-файлов. Как правило, файлы базы данных LocalDB хранятся в папке App_Data веб-проекта.

SQL Server Express не рекомендуется использовать в рабочих веб-приложениях. LocalDB, в частности, не следует использовать в рабочей среде с веб-приложением, так как она не предназначена для работы со службами IIS. Однако базу данных LocalDB можно легко перенести в SQL Server или SQL Azure.

В Visual Studio 2017 LocalDB устанавливается по умолчанию вместе с Visual Studio.

По умолчанию Entity Framework ищет строку подключения с именем, совпадающее с классом контекста объекта (MovieDBContext для этого проекта). Дополнительные сведения см. в разделе SQL Server строки подключения для веб-приложений ASP.NET.

Откройте файл корневого Web.config приложения, показанный ниже. (Не файлWeb.config в папке Views .)

Снимок экрана, на котором показано окно Обозреватель решений и выделена конфигурация веб-точки и обведена красным цветом.

<connectionStrings> Найдите элемент :

Снимок экрана: код и элемент строки подключения обведен красным цветом.

Добавьте следующую строку подключения к элементу <connectionStrings> в файле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" 
/>

В следующем примере показана часть файла Web.config с добавленной новой строкой подключения:

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

Две строки подключения очень похожи. Первая строка подключения называется DefaultConnection и используется для базы данных членства для управления доступом к приложению. Добавленная строка подключения указывает базу данных LocalDB с именем Movie.mdf , расположенную в папке App_Data . Мы не будем использовать базу данных членства в этом руководстве. Дополнительные сведения о членстве, проверке подлинности и безопасности см. в руководстве Создание приложения MVC ASP.NET с проверкой подлинности и базой данных SQL и развертывание в Служба приложений Azure.

Имя строки подключения должно совпадать с именем класса 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; }
    }
}

На самом деле не нужно добавлять MovieDBContext строку подключения. Если не указать строку подключения, Entity Framework создаст базу данных LocalDB в каталоге users с полным именем класса DbContext (в данном случае MvcMovie.Models.MovieDBContext). Вы можете присвоить базе данных любое имя, если в ней есть . Суффикс MDF . Например, можно назвать базу данных MyFilms.mdf.

Далее вы создадите новый MoviesController класс, который можно использовать для отображения данных о фильмах и разрешения пользователям создавать новые списки фильмов.