EF核心-为没有连接字符串且在另一个类库中的数据库创建迁移

时间:2019-05-04 07:32:52

标签: c# entity-framework entity-framework-core

我想为第二个及后续数据库创建迁移,该数据库位于与使用它的项目不同的类库中。有皱纹。在用户登录之前,我永远都不会知道连接字符串,而且我可以从目录数据库(saas)中获取它。

对于目录数据库,我使用了this网站上的解决方案。很好-该数据库在appsettings.json中具有其连接字符串,并且可以使用依赖项注入。

使用相同的迁移,客户端数据库将全部相同。我的问题是,我不知道如何从Package Manager控制台创建此初始迁移。

我确实尝试运行此命令:

dotnet ef migrations add INITIAL --context APIcontext -s ../Jobsledger.API

并给了我以下错误:

  

尚未为此DbContext配置数据库提供程序。

我所期望的。

鉴于CodingBlast解决方案(上述)用于在不同的类库中运行迁移,需要一个我没有的连接,并且需要在启动时注册数据库连接...

..并且考虑到要创建的每个用户数据库都将使用此迁移,我该如何创建它并且当然要使用它?

1 个答案:

答案 0 :(得分:0)

我确实回答过类似的问题 here

您可以实现 IDesignTimeDbContextFactory,在没有连接字符串的情况下实例化 DbContext。

对于不同的库,您可以使用 --project 和 --startup-project 参数。

这是我用来生成迁移脚本的示例:

dotnet ef migrations script --context MyDbContext --output migrations.sql --project "./MyApp.Data" --startup-project "./MyApp.Data"