Если у вас уже есть база данных или вы предпочитаете, чтобы проектное решение базы данных управляло разрабатываемым приложением, тогда должен применяться подход
DbContext класса и всех сущностных классов вручную вы формируете шаблоны классов из базы данных. В случае изменения базы данных вам придется заново сформировать шаблоны классов для сохранения своего кода в синхронизированном с базой данных состоянии. Любой специальный код в сущностных классах или в классе, производном от DbContext, должен быть помещен в частичные классы, чтобы он не переписывался при повторном создании шаблонов классов. К счастью, именно по этой причине процесс формирования шаблонов строит частичные классы.Какой бы подход вы ни выбрали, "сначала код" или "сначала база данных", имейте в виду, что он является обязательством. Если вы используете подход "сначала код", то все изменения вносятся в классы сущностей и контекста, а база данных обновляется с применением миграций. Если вы используете подход "сначала база данных", то все изменения должны вноситься в базу данных, после чего будет требоваться повторное создание шаблонов классов. Приложив некоторые усилия по планированию, вы можете переключаться с подхода "сначала база данных" на подход "сначала код" (и наоборот), но не должны вручную вносить изменения в код и базу данных одновременно.
Создание проектов AutoLot.Dal и AutoLot.Models
Уровень доступа к данным AutoLo
DbContext класс, фабрику контекстов, хранилища, миграции и т.д.), а другой — сущности имодели представлений. Создайте новое решение под названием Chapter23_AllProjects и добавьте в него проект библиотеки классов .NET Core по имени AutoLot.Models. Удалите стандартный класс, созданный шаблоном, и добавьте в проект следующие пакеты NuGet:Microsoft.EntityFrameworkCore.Abstractions
System.Text.Json
Пакет Microsoft.EntityFrameworkCore.Abstractions
Microsoft.EntityFrameworkCore. Добавьте в решение еще один проект библиотеки классов .NET Core по имени AutoLot.Dal. Удалите стандартный класс, сгенерированный шаблоном, включите ссылку на проект AutoLot.Models и добавьте в проект перечисленные далее пакеты NuGet:Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Design
Пакет Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer предлагает поставщик данных SQL, а пакет Microsoft.EntityFrameworkCore.Design требуется для инструментов командной строки EF Core.Чтобы выполнить все указанные ранее шаги в командной строке, введите показанные ниже команды (в каталоге, где хотите создать решение):
dotnet new sln -n Chapter23_AllProjects
dotnet new classlib -lang c# -n AutoLot.Models -o .\AutoLot.Models -f net5.0
dotnet sln .\Chapter23_AllProjects.sln add .\AutoLot.Models
dotnet add AutoLot.Models package Microsoft.EntityFrameworkCore.Abstractions
dotnet add AutoLot.Models package System.Text.Json
dotnet new classlib -lang c# -n AutoLot.Dal -o .\AutoLot.Dal -f net5.0
dotnet sln .\Chapter23_AllProjects.sln add .\AutoLot.Dal
dotnet add AutoLot.Dal reference AutoLot.Models
dotnet add AutoLot.Dal package Microsoft.EntityFrameworkCore
dotnet add AutoLot.Dal package Microsoft.EntityFrameworkCore.Design
dotnet add AutoLot.Dal package Microsoft.EntityFrameworkCore.SqlServer
dotnet add AutoLot.Dal package Microsoft.EntityFrameworkCore.Tools
На заметку!
В случае работы на машине с операционной системой, отличающейся от Windows, используйте символ разделителя каталогов, который принят в вашей системе.Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT