asp.net-mvc - 在 Multi-Tenancy 应用程序中使用多个数据库架构

标签 asp.net-mvc architecture dapper multi-tenant

我正在将当前的应用程序迁移到 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/

相关文章:

java - 如何在 PHP 和 Java 程序之间进行通信?

asp.net-mvc - gzip 压缩不起作用并且无法在 chrome 中获取 304

asp.net - 使用 AngularJS 和 Asp.Net MVC 上传带有 FormData 的多个文件

c# - 使用 EF 中的通用方法检查数据库中是否存在记录

ios - 如何跨 Swift 模块进行调试?

c# - Dapper 读取 SqlHierachyId 列(SQL Server 2008 R2)

javascript - jquery中基于razor循环的循环

java - 应该为特定的 Web 应用程序选择什么框架?

f# - F#中的Dapper点网查询

c# - 无法在 "Portuguese"数据库上使用 npgsql 选择某些行