我需要解决 Entity Framework 核心中的 Multi-Tenancy 问题。每个租户都有自己的数据库(由于历史原因,无法更改)。
我将按照许多地方的建议使用上下文工厂(example 1、example 2、example 3)。
我的问题是:
- 我可以通过这种方法使用上下文池吗
- 我可以使用
OnModelCreating
中设置的IMutableEntityType.QueryFilter
吗?
如果从池中返回 DbContext,我担心它会链接到旧的连接字符串,而不是新的(如果请求是从不同的租户开始的,那么上下文是从哪里创建的)。
我想我可以像这样解决迁移(来自 second point ):
foreach (var tenant in allTenants)
{
var context = dbContextFactory.CreateDbContext(tenant, configuration);
context.Database.Migrate();
}
除了我的 2 个问题。在开始编码之前还有什么我应该考虑的吗?
最佳答案
是的,你可以使用查询过滤器
不,你不能使用 DbContext 池
关于entity-framework - 带 DbContext 池和 Multi-Tenancy 的 EF Core - 每个租户的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54553678/