0

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

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

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

4

1 回答 1

0

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

于 2020-04-03T09:39:26.360 回答