繁体   English   中英

多租户ASP.NET Core

[英]Multi-Tenant ASP.NET Core

您将如何配置中间件以根据收入请求的子域更改DBContext连接字符串?

看来DBContext是在Startup ...中设置的,这似乎为时过早,无法确定HTTPRequest来解析连接字符串。

好吧,这可能无法完全满足您的需求,但这是我要做的:

创建一个DbContextFactory类。 DbContextFactory类可以创建的实例DbContext ,可以在任何字符串到传递DbContext构造。 然后注入该工厂,每当需要dbcontext实例时,只需要求工厂为您返回一个实例即可。 当然,您必须自己管理所创建上下文的生命周期(即,使用块)。

另一个选择是创建DbContextFactory ,使其包含DbContext的实例。 当您从工厂要求上下文对象时,工厂将创建一个新的对象,并将其存储在私有字段中,随后的调用将返回该实例。 使工厂IDisposable并在其Dispose()方法中也处置上下文。 这样,您不必担心管理生命周期(如果您使用范围注册)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM