Asp.net核心+ EF代码第一,迁移文件在不同的项目中

DiP*_*Pix 4 c# entity-framework asp.net-core

在我的解决方案中,我想首先使用Asp.net核心+ EF代码

我有2个项目:

  • CC.API
  • CC.Infrastructure

在CC.API我有启动类,有:

services.AddDbContext<DataContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), b => b.MigrationsAssembly("CC.Infrastructure")));
Run Code Online (Sandbox Code Playgroud)

(连接字符串在appsettings.json中)

正如您所看到的,我正在尝试将迁移文件保存在不同的项目中 - CC.Infrastructure.

不幸的是,当Add-Migration Init我收到错误时: 您的目标项目"PK.API"与您的迁移程序集"PK.Infrastructure"不匹配.更改目标项目或更改迁移程序集

如果我在启动时更改,b => b.MigrationsAssembly("CC.API")那么everthing工作正常,但文件迁移文件将在CC.API中:/

Bra*_*NET 5

对于EF Core来说,这是一个长期存在的问题.解决方案曾经是使您的类库成为可执行文件(暂时),然后针对它运行所有EF操作.

使用当前工具,您可以Add-Migration在库文件夹中运行; 唯一需要注意的是,您需要将startup-project标志设置为实际可执行文件的项目.

所以命令最终会像:

C:\CC.Infrastructure>dotnet ef migrations add NewMigration --startup-project ../CC.API/CC.API.csproj
Run Code Online (Sandbox Code Playgroud)