为ASP.NET Core中的基于模式的多租户动态设置search_path

问题描述 投票:0回答:1

我正在使用EF Core编写新的ASP.NET Core应用程序(.NET Core 3.1),以进行数据库访问。该应用程序应与现有的PostgreSQL数据库接口,该数据库具有每个租户的PostgreSQL模式。从到目前为止的内容来看,这不是.NET Core通常执行此操作的方式,但是由于数据库已经存在,所以我在这里别无选择。我找不到有关如何动态切换模式的任何好的信息,多租户数据库访问的文档通常采用与每个租户架构不同的模型或不同的数据库。

表的布局在所有模式中都是相同的,因此唯一需要做的就是将search_path设置为每个请求的正确模式。我不确定如何使用EF Core精确地执行此操作,我发现的文档仅涉及静态设置模式或每个模型的设置。

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

c# asp.net-core entity-framework-core multi-tenant npgsql
1个回答
0
投票

就个人而言,我将实现某种DbContextProvider,该DbContextProvider将以承租人的名义接受并返回DbContext。此DbContextProvider的实现类似于this question的可接受答案。

© www.soinside.com 2019 - 2024. All rights reserved.