使用多租户.net核心中的实体框架从模型更新数据库

时间:2020-02-29 13:41:18

标签: entity-framework .net-core entity-framework-core sqlmigrations

我正在使用.net核心实体框架。

我有多个租户数据库。所以我保留了一个根租户数据库作为基础。我想使用实体框架将这些架构更改复制到所有其他数据库。我正在使用以下命令生成模型。

Scaffold-DbContext "Data Source=(local);Initial Catalog=sampleTenantDb;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Tenants -Force

因此,在创建新租户时,我只需使用

context.Database.EnsureCreated();

但是当我在代码中添加新表时,我想将其应用于所有租户。那我该怎么办呢?

我尝试了以下操作,但是不起作用(不添加重新记录表)

myDbContext.Database.Migrate();

2 个答案:

答案 0 :(得分:1)

您需要创建多个dbcontext对象,并以这种方式传递连接字符串,以便您可以更新多个db

答案 1 :(得分:1)

如果您的DbContext是使用Scaffold-DbContext创建的,则它将没有任何Migrations。那是针对数据库优先的工作流程,在该工作流程中,您将使用脚本(可能是使用SQL Server Data Tools创建的脚本将DDL更改应用于租户数据库。