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

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

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

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

Enable-Migrations

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

Снимок экрана: Обозреватель решений с иерархией папок с выделенным синим цветом файлом Configuration dot c s.

Откройте файл 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 в режиме отладки, со ссылкой API, обведенной красным цветом и выделенной красной стрелкой.

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

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

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

Авторы Описание
GET API/authors Получение всех авторов.
GET api/authors/{id} Получение автора по идентификатору.
POST /api/authors Создайте нового автора.
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, а элемент Add S Q L Server выделен желтым цветом.

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

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

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

Снимок экрана: обозреватель объектов S Q L Server с иерархией папок с элементом

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

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

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

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