EF Core - 在另一个类库中创建无连接字符串的数据库迁移

6
我想为一个在使用它的项目不同的类库中的第二个和随后的数据库创建迁移。然而,有一个问题。在用户登录并且我能够从目录数据库(saas)中获取连接字符串之前,我永远不会知道连接字符串是什么。
对于目录数据库,我使用了这个网站上的解决方案。这很好 - 这个数据库在appsettings.json文件中具有它的连接字符串,并且可以使用依赖注入。
客户端数据库都将相同,使用相同的迁移。我的问题是,我不知道如何从“包管理器控制台”创建此初始迁移。
我尝试运行以下内容:
dotnet ef migrations add INITIAL --context APIcontext -s ../Jobsledger.API

我遇到了以下错误:

没有为此DbContext配置数据库提供程序。

这是我预料中的情况。

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

..而且考虑到这个迁移将被用于创建每个用户数据库,我该如何创建它并使用它?

1个回答

0

我曾在这里回答过类似的问题。

您可以实现IDesignTimeDbContextFactory,其中您使用没有连接字符串的DbContext进行实例化。

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

这是一个示例,我用它来生成迁移脚本:

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


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