[英]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.