Entity Framework Core 2 для ASP.NET Core MVC для профессионалов

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Эффективно моделируйте, отображайте и получайте доступ к данным с помощью Entity Framework Core 2 новейшего выпуска инфраструктуры объектно-реляционного отображения от Microsoft. Вы получите возможность обращаться к данным с использованием объектов .NET через самый распространенный уровень доступа к данным, применяемый в проектах ASP.NET Core MVC 2.Автор многочисленных бестселлеров Адам Фримен объясняет, как извлечь максимальную пользу из Entity Framework Core 2 в проектах MVC. Сначала он описывает различные способы моделирования данных посредством инфраструктуры Entity Framework Core 2 и разнообразные типы баз данных, которые могут применяться. Затем он показывает, каким образом использовать Entity Framework Core 2 в собственных проектах MVC, начиная с основных элементов и заканчивая наиболее сложными и развитыми функциональными возможностями, и в ходе изложения предоставляет вам все необходимые знания.Благодаря этой книге, вы ...Обретете глубокое понимание архитектуры Entity Framework Core 2 Научитесь создавать базы данных с применением модели данных MVC Узнаете, как создавать модели MVC с использованием существующей базы данных Обеспечите доступ к данным в приложении MVC с применением Entity Framework Core 2 Научитесь использовать Entity Framework в веб-службах REST Каждая тема раскрывается кратко и понятно с приведением всех деталей, необходимых для подлинно эффективного освоения. Наиболее важным средствам дается всеобъемлющее толкование, при этом в главах затрагиваются часто возникающие проблемы и предлагаются способы их избегания.

Author(s): Адам Фримен
Publisher: Диалектика
Year: 2019

Language: Russian
City: СПб
Tags: C#, NET

Об авторе
Часть I. Введение в инфраструктуру Entity Framework Core 2
Глава 1. Основы Entity Framework Core
Понятие Entity Framework Core
Об этой книге
Что необходимо знать?
Какое программное обеспечение потребуется?
Что, если вы не хотите использовать Windows?
Какова структура книги?
Где можно получить код примеров?
Резюме
Глава 2. Ваше первое приложение Entity Framework Core
Подготовка
Установка .NET Core
Установка Visual Studio 2017
Создание проекта
Предварительная настройка
Создание проекта
Создание модели данных и классов контекста
Создание контроллера и представлений
Конфигурирование Entity Framework Core
Конфигурирование строки подключения
Конфигурирование класса Startup
Подготовка базы данных
Тестирование приложения
Резюме
Глава 3. Работа с базами данных
Подготовительные шаги
Исследование базы данных
Исследование таблиц базы данных
Исследование содержимого базы данных
Введение в SQL
Запрашивание данных
Сохранение и обновление данных
Удаление данных
Соединение данных
Подготовка базы данных
Выполнение соединения
Резюме
Глава 4. SportsStore: реальное приложение работы с данными
Создание проекта
Конфигурирование инфраструктуры ASP.NET Core MVC
Добавление модели
Добавление хранилища
Добавление контроллера и представления
Добавление последних штрихов
Запуск примера приложения
Резюме
Глава 5. SportsStore: хранение данных
Подготовительные шаги
Конфигурирование инфраструктуры Entity Framework Core
Конфигурирование журнальных сообщений Entity Framework Core
Подготовка модели данных
Определение свойства первичного ключа
Создание класса контекста базы данных
Обновление реализации хранилища
Подготовка базы данных
Конфигурирование строки подключения
Конфигурирование поставщика базы данных и класса контекста
Создание базы данных
Выполнение приложения
Избегание ловушек, связанных с запросами
Ловушка, связанная с IEnumerable Ловушка, связанная с дублированным запросом
Распространенные проблемы и их решения
Проблемы, связанные с созданием или доступом к базе данных
Проблемы, связанные с запрашиванием данных
Проблемы, связанные с сохранением данных
Резюме
Глава 6. SportsStore: модификация и удаление данных
Подготовительные шаги
Модификация объектов
Обновление хранилища
Обновление контроллера и создание представления
Обновление только измененных свойств
Выполнение массовых обновлений
Удаление данных
Распространенные проблемы и их решения
Объекты не обновляются или не удаляются
Исключение “Reference Not Set to an Instance of an Object” (“Не установлена ссылка на экземпляр объекта”)
Исключение “Instance of Entity Type Cannot be Tracked” (“Не удалось отследить экземпляр сущностного типа”)
Исключение “Property Has a Temporary Value” (“Свойство имеет временное значение”)
Обновления в результате дают нулевые значения
Резюме
Глава 7. SportsStore: расширение модели данных
Подготовительные шаги
Добавление отношения в модель данных
Добавление класса модели данных
Создание отношения
Обновление контекста и создание хранилища
Создание и применение миграции
Создание контроллера и представления
Заполнение базы данных категориями
Использование отношения между данными
Работа со связанными данными
Выбор категории для товара
Создание и редактирование товаров с категориями
Добавление поддержки для заказов
Создание классов модели данных
Создание хранилища и подготовка базы данных
Создание контроллеров и представлений
Сохранение данных заказа
Распространенные проблемы и их решения
Исключение “ALTER TABLE Conflicted With The FOREIGN KEY” (“ALTER TABLE конфликтует с FOREIGN KEY”)
Исключение “UPDATE Conflicted With The FOREIGN KEY” (“UPDATE конфликтует с FOREIGN KEY”)
Исключение “The Property Expression 'x =
Исключение “Type of Navigation Property <имя
Исключение “The Property <имя
Исключение “Invalid Object Name <имя
Вместо того чтобы обновляться, объекты удаляются
В представлении отображается имя класса для связанных данных
Резюме
Глава 8. SportsStore: масштабирование
Подготовительные шаги
Создание контроллера и представления для начального заполнения данными
Масштабирование представления данных
Добавление поддержки разбиения на страницы
Добавление поддержки поиска и упорядочения
Применение возможностей представления данных к категориям
Индексация базы данных
Создание и применение индексов
Распространенные проблемы и их решения
Запросы для страниц выполняются слишком медленно
Во время применения миграции, добавляющей индексы, возникает тайм-аут
Создание индекса не улучшило производительность
Резюме
Глава 9. SportsStore: интерфейс для покупателей
Подготовительные шаги
Удаление операторов, которые измеряют длительность выполнения запросов
Добавление импорта представления
Модификация модели данных
Добавление начальных данных о товарах
Подготовка базы данных
Отображение товаров для покупателя
Подготовка модели данных
Создание контроллера Store, представлений и компоновки
Тестирование контроллера Store
Добавление корзины для покупок
Включение постоянства данных сеанса
Создание класса модели Cart
Создание контроллера и представления
Тестирование процесса оформления заказа
Распространенные проблемы и их решения
Щелчок на кнопке страницы управляет ошибочным типом данных
Щелчок на кнопке страницы не имеет никакого эффекта
Исключение “Cannot Insert Explicit Value for Identity Column” (“Не удается вставить явное значение для идентичности”)
Объекты сеансов равны null
Объекты сеансов теряются или доступны несогласованно
Резюме
Глава 10. SportsStore: создание веб-службы REST
Подготовительные шаги
Создание веб-службы
Создание хранилища
Создание контроллера API
Тестирование веб-службы
Проецирование результата для исключения навигационных свойств, равных null
Включение связанных данных в ответ веб-службы
Запрашивание множества объектов
Завершение веб-службы
Модификация контроллера
Распространенные проблемы и их решения
Значения null у свойств при сохранении или обновлении объектов
Медленные запросы к веб-службе
Исключение “Cannot Insert Explicit Value for Identity Column” (“Не удается вставить явное значение для столбца идентичности”)
Резюме
Часть II. Подробные сведения об инфраструктуре Entity Framework Core 2
Глава 11. Работа с Entity Framework Core
Создание проекта ASP.NET Core MVC
Создание класса модели данных
Конфигурирование служб и промежуточного программного обеспечения
Добавление контроллера и представления
Добавление инфраструктуры Bootstrap для стилизации CSS
Конфигурирование HTTP-порта
Выполнение примера приложения
Добавление и конфигурирование инфраструктуры Entity Framework Core
Добавление пакета NuGet
Создание класса контекста базы данных
Подготовка сущностного класса
Обновление контроллера
Конфигурирование поставщика базы данных
Конфигурирование ведения журналов Entity Framework Core
Реализация паттерна “Хранилище”
Определение интерфейса и класса реализации хранилища
Избегание ловушки, связанной с использованием интерфейса IEnumerable вместо IQueryable
Сокрытие операций над данными
Завершение примера приложения MVC
Завершение хранилища
Добавление методов действий
Обновление и добавление представлений
Резюме
Глава 12. Выполнение операций над данными
Подготовительные шаги
Запуск примера приложения
Чтение данных
Чтение объекта по ключу
Запрашивание всех объектов
Запрашивание специфических объектов
Сохранение новых данных
Назначение ключей
Обновление данных
Обновление полного объекта
Запрашивание существующих данных перед обновлением
Обновление в единственной операции базы данных
Удаление данных
Резюме
Глава 13. Работа с миграциями
Подготовительные шаги
Понятие миграций
Работа с начальной миграцией
Исследование SQL-операторов миграции
Применение миграции
Заполнение базы данных начальными данными и выполнение приложения
Создание дополнительных миграций
Добавление в модель данных еще одного свойства
Управление миграциями
Вывод списка миграций
Применение всех миграций
Обновление до специфической миграции
Удаление миграции
Переустановка базы данных
Работа с множеством баз данных
Расширение модели данных
Конфигурирование приложения
Создание и применение миграций
Программное управление миграциями
Создание класса диспетчера миграций
Создание контроллера и представления для диспетчера миграций
Конфигурирование приложения
Выполнение диспетчера миграций
Программное заполнение баз данных начальными данными
Создание инструмента заполнения начальными данными
Заполнение начальными данными во время запуска
Резюме
Глава 14. Создание отношений между данными
Подготовительные шаги
Создание отношения
Добавление навигационного свойства
Создание миграции
Запрашивание и отображение связанных данных
Обновление представления с целью отображения связанных данных
Подготовка базы данных
Создание и обновление связанных данных
Создание нового поставщика при создании нового товара
Обновление поставщика при обновлении товара
Удаление связанных данных
Создание обязательного отношения
Создание свойства внешнего ключа
Удаление базы данных и подготовка начальных данных
Обновление и заполнение начальными данными базы данных
Операция удаления при наличии обязательного отношения
Выполнение запросов для множества отношений
Обновление и заполнение начальными данными базы данных
Выполнение запросов к цепочке навигационных свойств
Резюме
Глава 15. Работа с отношениями, часть 1
Подготовительные шаги
Доступ к связанным данным напрямую
Повышение связанных данных
Доступ к связанным данным с использованием параметра типа
Укомплектование отношения между данными
Запрашивание связанных данных в отношении “один ко многим”
Работа со связанными данными в отношении “один ко многим”
Обновление связанных объектов
Создание новых связанных объектов
Изменение отношений
Резюме
Глава 16. Работа с отношениями, часть 2
Подготовительные шаги
Укомплектование отношения “один к одному”
Определение навигационного свойства
Выбор зависимого сущностного класса
Создание и применение миграции
Работа с отношениями “один к одному”
Запрашивание связанных данных в отношении “один к одному”
Создание и обновление связанных объектов
Изменение отношения “один к одному”
Определение отношений “многие ко многим”
Создание соединяющего класса
Укомплектование отношения “многие ко многим”
Подготовка приложения
Запрашивание связанных данных в отношении “многие ко многим”
Управление отношениями “многие ко многим”
Резюме
Глава 17. Формирование шаблонов для существующих баз данных
Подготовительные шаги
Существующая база данных
Подключение к серверу баз данных
Создание базы данных
Создание проекта ASP.NET Core MVC
Тестирование примера приложения
Формирование шаблонов для существующей базы данных
Выполнение процесса формирования шаблонов
Использование модели данных, сгенерированной процессом формирования шаблонов, в ASP.NET Core MVC
Реагирование на изменения в базе данных
Модификация базы данных
Обновление модели данных
Обновление класса контекста
Обновление контроллеров и представлений
Добавление возможностей постоянства модели данных
Резюме
Глава 18. Ручное моделирование баз данных
Подготовительные шаги
Создание ручной модели данных
Создание класса контекста и сущностных классов
Создание контроллера и представления
Основные соглашения для модели данных
Переопределение соглашений для модели данных
Моделирование отношений
Завершение модели данных
Использование модели данных, созданной вручную
Запрашивание данных в модели данных, созданной вручную
Обновление данных в модели данных, созданной вручную
Резюме
Часть III. Расширенные возможности инфраструктуры Entity Framework Core 2
Глава 19. Работа с ключами
Подготовительные шаги
Создание модели данных
Создание контроллера и представлений
Конфигурирование приложения
Создание базы данных и тестирование приложения
Управление генерацией ключей
Стратегия Identity для генерации ключей
Стратегия Hi-Lo для генерации ключей
Работа с естественными ключами
Обеспечение уникальных значений для естественных ключей
Создание альтернативного ключа
Использование естественных ключей как первичных ключей
Создание составных ключей
Резюме
Глава 20. Запросы
Подготовительные шаги
Управление отслеживанием изменений для результатов, производимых запросами
Исключение индивидуальных объектов из отслеживания изменений
Модификация стандартного поведения отслеживания изменений
Использование фильтра запросов
Переопределение фильтра запросов
Запрашивание с использованием поискового шаблона
Выполнение асинхронных запросов
Явная компиляция запросов
Избегание ловушки, связанной с оценкой на стороне клиента
Генерация исключения, связанного с оценкой на стороне клиента
Резюме
Глава 21. Хранение данных
Подготовительные шаги
Указание типов данных SQL
Указание максимальной длины
Обновление базы данных
Проверка достоверности или форматирование значений данных
Избегание ловушки, связанной с выборочным обновлением поддерживающего поля
Сокрытие значений данных от части MVC приложения
Доступ к значениям теневых свойств
Включение теневых свойств в запросы
Установка стандартных значений
Отображение стандартного значения
Обнаружение параллельных обновлений
Использование маркеров параллелизма
Использование версии строки для обнаружения параллельных обновлений
Резюме
Глава 22. Удаление данных
Подготовительные шаги
Понятие ограничений удаления
Конфигурирование поведения удаления
Использование каскадного удаления
Установка внешних ключей в null
Обновление внешних ключей сервером баз данных
Обновление внешних ключей инфраструктурой Entity Framework Core
Взятие под свой контроль операции удаления
Воссоздание поведения каскадного удаления
Воссоздание поведения установки в null
Восстановление средства мягкого удаления
Резюме
Глава 23. Использование возможностей сервера баз данных
Подготовительные шаги
Использование SQL напрямую
Запрашивание с использованием SQL
Вызов хранимых процедур или других операций
Использование значений, сгенерированных сервером
Использование стандартных значений, сгенерированных сервером
Встраивание последовательных значений
Вычисление значений в базе данных
Моделирование автоматически генерируемых значений
Резюме
Глава 24. Использование транзакций
Подготовительные шаги
Стандартное поведение
Выполнение независимых изменений
Отключение автоматических транзакций
Использование явных транзакций
Включение в транзакцию других операций
Изменение уровня изоляции транзакций
Резюме
Предметный указатель