【发布时间】:2016-11-07 14:57:04
【问题描述】:
我正在修改我的 DbContext 以通过要求一个tenantId 来支持多租户:
public AppContext(int tenantId)
{
_tenantId = tenantId;
}
以前是没有参数的。
在我的服务类中,我使用 DI 实例化了上下文:
private readonly AppContext db;
private CommService _commService;
public AdminService(AppContext db, CommService commService)
{
this.db = db;
_commService = commService;
}
在我的控制器中,同样的事情:
private readonly CommService _commService;
public AdminController(CommService commService) {
_commService = commService;
}
我正在使用 Unity,但实际上并没有做太多配置 - 一切正常。
我将从我的控制器中检索tenantId。如何从 Controller > Service layer > Constructor 传递tenantId?
【问题讨论】:
-
你应该注入
DbContextFactory,并创建一个类似factory.CreateDbContextForTenant(int tenantId)的方法。
标签: c# entity-framework asp.net-web-api dependency-injection unity-container