我想为第二个及后续数据库创建迁移,该数据库位于与使用它的项目不同的类库中。有皱纹。在用户登录之前,我永远都不会知道连接字符串,而且我可以从目录数据库(saas)中获取它。
对于目录数据库,我使用了this网站上的解决方案。很好-该数据库在appsettings.json中具有其连接字符串,并且可以使用依赖项注入。
使用相同的迁移,客户端数据库将全部相同。我的问题是,我不知道如何从Package Manager控制台创建此初始迁移。
我确实尝试运行此命令:
dotnet ef migrations add INITIAL --context APIcontext -s ../Jobsledger.API
并给了我以下错误:
尚未为此DbContext配置数据库提供程序。
我所期望的。
鉴于CodingBlast解决方案(上述)用于在不同的类库中运行迁移,需要一个我没有的连接,并且需要在启动时注册数据库连接...
..并且考虑到要创建的每个用户数据库都将使用此迁移,我该如何创建它并且当然要使用它?
答案 0 :(得分:0)
我确实回答过类似的问题 here。
您可以实现 IDesignTimeDbContextFactory
,在没有连接字符串的情况下实例化 DbContext。
对于不同的库,您可以使用 --project 和 --startup-project 参数。
这是我用来生成迁移脚本的示例:
dotnet ef migrations script --context MyDbContext --output migrations.sql --project "./MyApp.Data" --startup-project "./MyApp.Data"