我正在将当前的应用程序迁移到 Multi-Tenancy 架构。使用单个代码库,我需要解决多个租户的问题。我正在使用单数据库、多模式方法。每个租户都会被分配一个单独的架构,元数据保存在默认架构中。
应用程序是使用 ASP.NET MVC 构建的。我使用 Dapper 连接到我的 SQL Server。我有 50 多个函数,它们使用直接查询和存储过程调用数据库。当为每个租户初始化 dapper 时,是否有任何方法可以设置架构而不更改功能。
最佳答案
在 SQL Server 中,架构与用户相关联。每个用户至少有一个默认架构。您可以将租户与架构相关联,这意味着您将拥有
的映射租户 -> 架构 -> 用户
动态构建 SQL 连接字符串并传递与该租户对应的 SQL 用户。这样,系统会自动指出默认模式,您不必更改 Dapper 查询,也不必编写动态查询。
注意:不要忘记检查连接池的含义。
关于asp.net-mvc - 在 Multi-Tenancy 应用程序中使用多个数据库架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20948956/