【问题标题】:Set search_path dynamically for schema-based multi tenancy in ASP.NET Core在 ASP.NET Core 中为基于模式的多租户动态设置 search_path
【发布时间】:2020-07-15 08:55:26
【问题描述】:

我正在编写一个新的 ASP.NET Core 应用程序 (.NET Core 3.1),使用 EF Core 进行数据库访问。此应用程序应与现有的 PostgreSQL 数据库交互,该数据库具有每个租户的 PostgreSQL 模式。从我目前阅读的内容来看,这不是在 .NET Core 中通常会这样做的方式,但由于数据库已经存在,我在这里别无选择。我找不到任何关于如何动态切换模式的好信息,多租户数据库访问的文档通常假设与租户每个模式或不同数据库不同的模型。

表布局在所有模式中都是相同的,因此唯一需要做的就是将 search_path 设置为每个请求的正确模式。我不确定如何使用 EF Core 准确地做到这一点,我发现的文档仅解决了静态或每个模型设置架构的问题。

使用 EF Core 在 ASP.NET Core 中处理这种多租户设置的正确方法是什么?

【问题讨论】:

    标签: c# asp.net-core entity-framework-core multi-tenant npgsql


    【解决方案1】:

    就我个人而言,我会实现某种 DbContextProvider,它会采用租户的名称并返回一个 DbContext。这个 DbContextProvider 的实现看起来类似于this question 的公认答案。

    【讨论】:

      猜你喜欢
      • 2018-01-15
      • 2020-02-02
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 2015-10-08
      • 2017-03-21
      • 2019-12-15
      相关资源
      最近更新 更多