EF Core迁移在单独项目中的问题

12

我在单独的项目中添加EF Core迁移不成功。我在文章结尾提供了项目结构。

DbContext类和迁移位于不同的项目中,前者是类库,而迁移项目是控制台应用程序。 我在迁移项目中添加了对DbContext项目的引用,但是在运行迁移命令时出现错误

\EF.BlogsDb.Migrations > dotnet ef migrations add InitialCreate --project EF.BlogsDb.Migrations.csproj

“EF.BlogsDb.Migrations”程序集中找不到DbContext。请确保您正在使用正确的程序集,并且该类型既不是抽象的也不是泛型。”

我按照此链接中的建议(链接已省略),但我不确定下面的问题。

我应该在哪个项目中添加这些行? 是迁移项目还是Web项目还是DbContext项目?

options.UseSqlServer(
    connectionString,
    x => x.MigrationsAssembly("MyApp.Migrations")); 

我为什么要从启动程序集中添加对迁移程序集的引用?

我应该从哪个位置/文件夹/项目运行这个命令?

dotnet ef migrations add NewMigration --project MyApp.Migrations 

如果您能告诉我如何分享源代码,我可以与您分享。

提前感谢您所提供的澄清!

这是我的项目结构:

Project Structure


1
看起来有人在这里回答了这些问题 https://github.com/aspnet/EntityFrameworkCore/issues/10806 - blogs4t
1个回答

23

可以使用以下命令来解决此问题。

dotnet ef --startup-project ../Project.Api/ migrations add InitialModel
  • 我在api和EF使用不同的文件夹。
  • 从EF项目文件夹中运行上述命令。
  • 启动项目是指api。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接