Создание строки подключения и работа с 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
класс, который можно использовать для отображения данных о фильмах и разрешения пользователям создавать новые списки фильмов.