【问题标题】:EF Core with DbContext pool and multi tenancy - database per tenant具有 DbContext 池和多租户的 EF Core - 每个租户的数据库
【发布时间】:2019-02-06 12:28:16
【问题描述】:

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

我将按照很多地方的建议使用上下文工厂(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 个问题。在开始编码之前我还有什么需要考虑的吗?

【问题讨论】:

    标签: entity-framework entity-framework-core


    【解决方案1】:

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

    不,您不能使用 DbContext 池

    【讨论】:

    猜你喜欢
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2021-05-14
    • 2017-09-16
    • 1970-01-01
    相关资源
    最近更新 更多