【发布时间】:2020-11-13 08:09:05
【问题描述】:
我正在使用多租户应用程序,因此必须了解上下文。
我有角色 db 架构(我们称之为 sampleDB),它有自己的 DbContext。我在这个数据库上使用迁移。这个数据库是每个客户的数据库应该是什么样子的例子。 每个客户都有自己的 sampleDB 版本和对他来说唯一的数据。我已经定义了 ClientDbContext,它是在客户需要访问他的数据库时根据他的唯一名称创建的。他的数据库的模式更新出现问题。我不想为每个客户手动执行此操作,因为我可以拥有很多客户。
创建 ClientDbContext 后,我想运行应用于 SampleDb 的迁移(ClientDb 和 SampleDb 的架构必须相同)。我无法手动执行此操作(更新数据库),因为客户端数据库的连接字符串在运行时是已知的。 ClientDbContext 中不需要迁移历史记录,但我无法在运行时更新他的 Db。 我已经定义了方法 wchi 运行迁移:
public async Task StartMigrationAsync()
{
await this.Database.MigrateAsync();
}
我无法为该方法定义迁移文件夹。
我不知道如何在不丢失数据的情况下解决此问题。
【问题讨论】:
标签: .net entity-framework-core dbcontext