【发布时间】:2020-04-23 14:47:52
【问题描述】:
我遇到了一个问题,即通过根据正在访问的租户更改数据库连接,租户运行 AddDbContextPool 等连接池,并且租户可以重用相同的连接。
【问题讨论】:
标签: .net entity-framework asp.net-core
我遇到了一个问题,即通过根据正在访问的租户更改数据库连接,租户运行 AddDbContextPool 等连接池,并且租户可以重用相同的连接。
【问题讨论】:
标签: .net entity-framework asp.net-core
执行多租户上下文本质上是一种 hack,依赖于上下文限定于请求的事实。但是,池化的全部意义在于在跨个请求之间保持底层数据库连接,因此它与多租户模式根本不兼容。
不过,无论如何,这种方法现在已经过时了。 ASP.NET Core 是轻量级、自包含和配置驱动的,非常适合运行多个实例,而不是一个实例试图覆盖所有可能的场景。换句话说,您可以多次部署相同的应用程序,并且只需通过配置为每个部署切换连接字符串等内容,从而无需多租户:每个租户都可以并且应该只拥有自己的实例。无论如何,这要安全得多。作为一名企业客户,我自己永远会选择在一个实例中将他们的客户放在一起的服务。这只是让您的数据泄露或被黑客入侵的秘诀。
【讨论】: