Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
modelBuilder.Entity<Customer>(entity =>
{
entity.OwnsOne(o => o.PersonalInformation,
pd =>
{
pd.Property<string>(nameof(Person.FirstName))
.HasColumnName(nameof(Person.FirstName))
.HasColumnType("nvarchar(50)");
pd.Property<string>(nameof(Person.LastName))
.HasColumnName(nameof(Person.LastName))
.HasColumnType("nvarchar(50)");
});
<b> entity.Navigation(c => c.PersonalInformation).IsRequired(true);</b>
});
Существуют дополнительные аспекты для исследования с помощью принадлежащих сущностей, в том числе коллекции, разбиение таблиц и вложение, но они выходят за рамки тематики настоящей книги. За более подробной информацией о принадлежащих сущностях обращайтесь в документацию по EF Core:
https://docs.microsoft.com/ru-ru/ef/core/modeling/owned-entities
Сопоставление с функциями базы данных
Функции SQL Server можно сопоставлять с методами C# и включать в операторы LINQ. В таком случае метод C# служит просто заполнителем, поскольку в генерируемый запрос SQL внедряется серверная функция. Поддержка сопоставления с табличными функциями была добавлена в EF Core к уже имеющейся поддержке сопоставления со скалярными функциями. Дополнительные сведения о сопоставлении с функциями базы данных ищите в документации:
https://docs.microsoft.com/ru-ru/ef/core/querying/user-defined-function-mapping
Команды CLI глобального инструмента EF Core
Глобальный инструмент командной строки EF Core под названием
dotnet-ef
dotnet-ef
dotnet tool install -- global dotnet-ef — version 5.0.1
На заметку! Из-за того, что EF Core 5 не является выпуском с долгосрочной поддержкой (LTS) при использовании глобальных инструментов EF Core 5 потребуется указывать версию.
Для проверки результата установки откройте окно командной строки и введите такую команду:
dotnet ef
Если глобальный инструмент был успешно установлен, тогда вы получите схематическое изображение единорога EF Core (талисмана команды разработчиков) и список доступных команд, подобный показанному ниже (на экране единорог выглядит лучше):
_/__
---==/ \
___ ___ |. |
|__||__| | ) \
|_||_| _/ | //|\
|__||_| / \/\
Entity Framework Core .NET Command-line Tools 5.0.1
Usage: dotnet ef [options] [command]
Options:
--version Show version information
-h|--help Show help information
-v|--verbose Show verbose output.
--no-color Don't colorize output.
--prefix-output Prefix output with level.
Commands:
database Commands to manage the database.
dbcontext Commands to manage DbContext types.
migrations Commands to manage migrations.
Use "dotnet ef [command] --help" for more information about a command.
Использование: dotnet ef [параметры] [команда]
Параметры:
--version Показать информацию о версии.
-h|--help Показать справочную информацию.
-v --verbose Включить многословный вывод.
--no-color Не использовать цвета в выводе.
--prefix-output Снабжать вывод префиксами для выделения уровней.
Команды:
database Команды для управления базой данных.
dbcontext Команды для управления типами DbContext.
migrations Команды для управления миграциями.
Для получения дополнительной информации о команде применяйте dotnet ef [команда] --help.
В табл. 22.9 описаны три основных команды глобального инструмента EF Core. С каждой основной командой связаны дополнительные подкоманды. Как и все команды .NET Core, каждая команда имеет развитую справочную систему, которая доступна после ввода
-h

Команды EF Core выполняются в отношении файлов проектов .NET Core (не файлов решений). Целевой проект должен ссылаться на пакет NuGet инструментов EF Core по имени
Microsoft.EntityFrameworkCore.Design
Для команд CLI глобального инструмента EF Core, которым требуется экземпляр класса, производного от
DbContext
Database
Migrations
DbContext
DbContext
IDesignTimeDbContextFactory<TContext>