我目前正在努力支持 mvc4 项目中的多租户。现在,我知道我必须在 UnitOfWork 构造函数中执行以下查询:
"USE FEDERATION <FederationName>(FederationKey=<FederationID>) WITH RESET, FILTERING=ON"
现在从会话中检索值 (FederationName) 和 (FederationID),所以我必须将这些作为参数传递给 UnitOfWork 构造函数,但我想知道,这可能使用依赖注入吗?如果是,如何?我使用 ninject 作为依赖注入器。这是当前在 NinjectWebCommon.cs 中完成绑定的方式:
private static void RegisterServices(IKernel kernel)
{
...
kernel.Bind<IUnitOfWork>().To<UnitOfWork>();
...
}
这就是 UnitOfWork 构造函数的样子:
public UnitOfWork(DbContext dbContext, string federationName, int federationID)
{
Database = dbContext;
((IObjectContextAdapter)dbContext).ObjectContext.Connection.Open();
Database.Database.ExecuteSqlCommand(
string.Format(@"USE FEDERATION {0}({1}={2}) WITH RESET, FILTERING={3}",
federationName,
"FID",
federationID,
"ON"));
}