В EF Core
может оказаться полезной определенная команда «scaffolding».
Строительные леса могут восстановить ваши DbContext
, а также ваши модели.И по моему опыту, не будет переопределять любые пользовательские partial classes
, которые вы сделали для расширения DbContext
, поэтому они продолжают работать.
Возможно, вам придется установить определенные инструментыдобавление их в ваш project.json (старый) / csproj (новый)
dotnet cli
dotnet ef dbcontext scaffold --help`
Usage: dotnet ef dbcontext scaffold [arguments] [options]
Arguments:
<CONNECTION> The connection string to the database.
<PROVIDER> The provider to use. (E.g. Microsoft.EntityFrameworkCore.SqlServer)
Эта команда (запускается из корневого каталога проекта, если вы храните ваши модели в папке).называется "Модели");1) обновляет мои Модели и 2) мой DbContext.Если вам нужны только обновления вашего DbContext, я использую source-control (git), чтобы отменить изменения в Моделях;сохранить изменения в DbContext.
dotnet ef dbcontext scaffold "{connection}" Microsoft.EntityFrameworkCore.SqlServer \
-f --output-dir=Models
Powershell
Подробнее здесь , сокращенная команда:
SYNTAX
Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-Context <String>] [-Schemas <String[]>] [-Tables <String[]>] [-DataAnnotations] [-Force] [-Environment <String>] [-Project <String>] [-StartupProject <String>]
[<CommonParameters>]
PARAMETERS
-Connection <String>
The connection string to the database.
-Provider <String>
The provider to use. (E.g. Microsoft.EntityFrameworkCore.SqlServer)
-OutputDir <String>
The directory to put files in. Paths are relaive to the project directory.
-Context <String>
The name of the DbContext to generate.
....
-Force [<SwitchParameter>]
Overwrite existing files.