带有DbContext池和多租户的EF Core-每个租户的数据库

时间:2019-02-06 12:28:16

标签: entity-framework entity-framework-core

我需要解决实体框架核心中的多租户问题。每个租户都有自己的数据库(由于历史原因,无法更改)。

我将在许多地方(example 1example 2example 3)中使用建议的上下文工厂。

我的问题是:

  • 我可以通过这种方法使用上下文池吗?
  • 我可以使用在IMutableEntityType.QueryFilter中设置的OnModelCreating

如果DbContext是从池中返回的,我担心它将链接到旧的连接字符串,而不是新的(如果请求是从其他租户启动的,则创建了上下文)。

我想我可以解决这种迁移问题(来自second point):

foreach (var tenant in allTenants)
{
    var context = dbContextFactory.CreateDbContext(tenant, configuration);
    context.Database.Migrate();
}

除了我的2个问题。在开始编码之前,我还应该考虑什么吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用查询过滤器

否,您不能使用DbContext池