Выбери любимый жанр
Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Последние комментарии
Сергей2018-11-27
Не книга, а полная чушь! Хорошо, что чит
К книгеЯзык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 436
436
Изменить размер шрифта:
[InverseProperty(<b>nameof(Make.Cars)</b>)]
public Make? MakeNavigation { get; set; }
На заметку! Модификатор
virtual
необходим для ленивой загрузки. Поскольку ленивая загрузка в примерах книги не используется, модификатор virtual
будет удаляться из всех свойств внутри уровня доступа к данным.Для навигационного свойства
Orders
требуется атрибут [Jsonlgnore]
, чтобы предотвратить циклические ссылки JSON при сериализации объектной модели. В шаблонном коде обратное навигационное свойство задействует выражение nameof
, но его понадобится обновить, т.к. имена всех навигационных свойств типа ссылок будут содержать суффикс Navigation
. Последнее изменение связано с тем, что свойство должно иметь тип IEnumerable<Order>
, а не ICollection<Order>
, и инициализироваться с применением нового экземпляра List<Order>
. Изменение не является обязательным, потому что ICollection<Order>
тоже будет работать. Более низкоуровневый тип IEnumerable<T>
предпочтительнее использовать с навигационными свойствами типа коллекций IEnumerable<T>
(поскольку интерфейсы IQueryable<T>
и ICollection<T>
унаследованы от IEnumerable<T>
). Модифицируйте код, как показано далее:<b>[JsonIgnore]</b>
[InverseProperty(nameof(Order.Car<b>Navigation</b>))]
public <b>IEnumerable</b><Order> Orders { get; set; } = <b>new List<Order>()</b>;
Затем добавьте свойство
NotMapped
, которое будет отображать значение Make
экземпляра Car
, устранив необходимость в классе CarViewModel
из главы 21. Если связанная информация Make
была извлечена из базы данных с записью Car
, то значение MakeName
отображается. Если связанные данные не были извлечены, тогда для свойства отображается строка Unknown (т.е. производитель не известен). Как вы должны помнить, свойства с атрибутом [NotMapped]
не относятся к базе данных и существуют только внутри сущности. Добавьте следующий код:[NotMapped]
public string MakeName => MakeNavigation?.Name ?? "Unknown";
Переопределите
ToString()
для отображения информации о транспортном средстве:public override string ToString()
{
// Поскольку столбец PetName может быть пустым,
.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390}) // определить стандартное имя **No Name**
return $"{PetName ?? "**No Name**"} is a {Color} {MakeNavigation?.Name}
with ID {Id}.";
}
Добавьте к свойству
MakeId
атрибуты [Required]
и [DisplayName]
. Несмотря на то что инфраструктура EF Core считает свойство MakeId
обязательным, т.к. оно не допускает значение null
, механизму проверки достоверности ASP.NET Core нужен атрибут [Required]
. Ниже приведен модифицированный код:<b>[Required]</b>
<b>[DisplayName("Make")]</b>
public int MakeId { get; set; }
Финальное изменение заключается в добавлении свойства
IsDrivable
типа bool
, не допускающего значения null
, с поддерживающим полем, допускающим null
, и отображаемым именем:private bool? _isDrivable;
[DisplayName("Is Drivable")]
public bool IsDrivable
{
get => _isDrivable ?? false;
set => _isDrivable = value;
}
На этом обновление сущностного класса
Car
завершено. Сущность Customer
Для таблицы
Customers
был создан шаблонный сущностный класс по имени Customer
. Приведите операторы using
к следующему виду:using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
using AutoLot.Models.Entities.Base;
using AutoLot.Models.Entities.Owned;
Унаследуйте класс
Customer
от BaseEntityn
удалите свойства Id
и TimeStamp
. Удалите конструктор и директиву #pragma nullable disable
, после чего добавьте атрибут [Table]
со схемой. Удалите свойства FirstName
и LastName
, т.к. они будут заменены принадлежащим сущностным классом Person
. Вот как выглядит код в настоящий момент:namespace AutoLot.Models.Entities
- Предыдущая
- 436/642
- Следующая

