Использование Code First Migrations для начального заполнения базы данных

Скачивание завершенного проекта

В этом разделе вы будете использовать Code First Migrations в EF, чтобы наполнить базу данных тестовыми данными.

В меню "Сервис" выберите диспетчер пакетов NuGet, а затем консоль диспетчера пакетов. В окне консоли диспетчера пакетов введите следующую команду:

Enable-Migrations

Эта команда добавляет папку с именем Migrations в проект, а также файл кода с именем Configuration.cs в папке Migrations.

Скриншот Solution Explorer, показывающего иерархию папок с выделенным в синем файлом Configuration.cs.

Откройте файл Configuration.cs. Добавьте следующую инструкцию using.

using BookService.Models;

Затем добавьте следующий код в метод Configuration.Seed :

protected override void Seed(BookService.Models.BookServiceContext context)
{
    context.Authors.AddOrUpdate(x => x.Id,
        new Author() { Id = 1, Name = "Jane Austen" },
        new Author() { Id = 2, Name = "Charles Dickens" },
        new Author() { Id = 3, Name = "Miguel de Cervantes" }
        );

    context.Books.AddOrUpdate(x => x.Id,
        new Book() { Id = 1, Title = "Pride and Prejudice", Year = 1813, AuthorId = 1, 
            Price = 9.99M, Genre = "Comedy of manners" },
        new Book() { Id = 2, Title = "Northanger Abbey", Year = 1817, AuthorId = 1, 
            Price = 12.95M, Genre = "Gothic parody" },
        new Book() { Id = 3, Title = "David Copperfield", Year = 1850, AuthorId = 2, 
            Price = 15, Genre = "Bildungsroman" },
        new Book() { Id = 4, Title = "Don Quixote", Year = 1617, AuthorId = 3, 
            Price = 8.95M, Genre = "Picaresque" }
        );
}

В окне консоли диспетчера пакетов введите следующие команды:

Add-Migration Initial
Update-Database

Первая команда создает код, который создает базу данных, а вторая команда выполняет этот код. База данных создается локально с помощью LocalDB.

Снимок экрана: окно консоли диспетчера пакетов с включением миграции, добавлением начальной миграции и обновлением строк базы данных, окружаемых красным цветом.

Изучение API (необязательно)

Нажмите F5 , чтобы запустить приложение в режиме отладки. Visual Studio запускает IIS Express и запускает веб-приложение. Затем Visual Studio запускает браузер и открывает домашнюю страницу приложения.

При запуске веб-проекта Visual Studio назначает номер порта. На рисунке ниже номер порта равен 50524. При запуске приложения вы увидите другой номер порта.

Снимок экрана окна приложения, запущенного из Visual Studio в режиме отладки, где ссылка A P I обведена красным цветом и выделена красной стрелкой.

Домашняя страница реализована с помощью ASP.NET MVC. В верхней части страницы есть ссылка, которая говорит "API". Эта ссылка позволяет перейти на страницу справки, созданную автоматически для веб-API. (Сведения о создании этой страницы справки и о том, как можно добавить собственную документацию на страницу, см. в статье "Создание страниц справки для ASP.NET веб-API".) Вы можете щелкнуть ссылки на страницу справки, чтобы просмотреть сведения об API, включая формат запроса и ответа.

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

API включает операции CRUD в базе данных. Ниже приведены итоги API.

Авторы Описание
GET API/авторы Получите всех авторов.
GET api/authors/{id} Получить автора по идентификатору.
POST /api/авторы Создайте нового автора.
PUT /api/authors/{id} Обновите существующего автора.
DELETE /api/authors/{id} Удаление автора.
Книги Описание
GET /api/books Получите все книги.
GET /api/books/{id} Получите книгу по идентификатору.
POST /api/books Создайте книгу.
PUT /api/books/{id} Обновите существующую книгу.
DELETE /api/books/{id} Удалить книгу.

Просмотр базы данных (необязательно)

При выполнении команды Update-Database EF создал базу данных и вызвал Seed метод. При локальном запуске приложения EF использует LocalDB. Базу данных можно просмотреть в Visual Studio. В меню Представление выберите Обозреватель объектов SQL Server.

Снимок экрана обозревателя объектов S Q L Server, где элемент S Q L Server выделен синим цветом, а элемент

В диалоговом окне "Подключение к серверу" в поле " Имя сервера" введите "(localdb)\v11.0". Оставьте параметр проверки подлинности как "Проверка подлинности Windows". Нажмите кнопку "Подключить".

Снимок экрана: диалоговое окно

Visual Studio подключается к LocalDB и отображает существующие базы данных в окне обозревателя объектов SQL Server. Вы можете развернуть узлы, чтобы увидеть таблицы, созданные EF.

Снимок экрана: обозреватель объектов сервера S Q L, показывающий иерархию папок с элементом контекста службы книги, выделенным синим цветом.

Чтобы просмотреть данные, щелкните таблицу правой кнопкой мыши и выберите "Просмотреть данные".

Снимок экрана: обозреватель объектов сервера S Q L, показывающий элемент d o dot Books, выделенный синим цветом, и элемент

На следующем снимку экрана показаны результаты таблицы "Книги". Обратите внимание, что EF заполнила базу данных начальными данными, а таблица содержит внешний ключ на таблицу "Авторы".

Снимок экрана: таблица