在多租户 .net 核心中使用 entity framework 从模型更新数据库
Update database from models using entity framework in multi tenant .net core
我正在使用 .net 核心 entity framework。
我有多租户数据库。所以我保留了一个根租户数据库作为基础。我想使用 entity framework 将这些架构更改复制到所有其他数据库。我正在使用以下命令生成我的模型。
Scaffold-DbContext "Data Source=(local);Initial Catalog=sampleTenantDb;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Tenants -Force
所以在创建新租户时,我只是使用
context.Database.EnsureCreated();
但是当我在代码中添加新的 table 时,我想将它应用到所有租户。那我该怎么做呢?
我试过跟随,但它不起作用(不添加 remanining tables)
myDbContext.Database.Migrate();
您需要创建多个 dbcontext 对象并传递连接字符串,这样您就可以更新多个 db
如果您的 DbContext 是使用 Scaffold-DbContext 创建的,它将没有任何 Migrations. That's for a database-first workflow, in which you would apply the DDL changes to the tenant databases with a script, perhaps created with SQL Server Data Tools。
我正在使用 .net 核心 entity framework。
我有多租户数据库。所以我保留了一个根租户数据库作为基础。我想使用 entity framework 将这些架构更改复制到所有其他数据库。我正在使用以下命令生成我的模型。
Scaffold-DbContext "Data Source=(local);Initial Catalog=sampleTenantDb;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Tenants -Force
所以在创建新租户时,我只是使用
context.Database.EnsureCreated();
但是当我在代码中添加新的 table 时,我想将它应用到所有租户。那我该怎么做呢?
我试过跟随,但它不起作用(不添加 remanining tables)
myDbContext.Database.Migrate();
您需要创建多个 dbcontext 对象并传递连接字符串,这样您就可以更新多个 db
如果您的 DbContext 是使用 Scaffold-DbContext 创建的,它将没有任何 Migrations. That's for a database-first workflow, in which you would apply the DDL changes to the tenant databases with a script, perhaps created with SQL Server Data Tools。