我想知道这里的最佳做法是什么。
我需要为我的多租户应用程序构造一个DbContext,所以我制作了一个Dependency provider,如下所示:

public class TenantContextFactoryProvider : Provider<DbContext>
{
    protected override DbContext CreateInstance(IContext context)
    {
        var tenant = // How to get the tenant through ninject??
        return new DbContext(tenant.ConnectionString);
    }
}


我需要ninject来解决租户依赖性,但是我不确定如何做到这一点?

最佳答案

尽管服务定位器当然可以工作,但构造函数注入是另一种选择。

public class TenantContextFactoryProvider : Provider<DbContext>
{
    ITenant tenant;
    public TenantContextFactoryProvider(ITenant tenant)
    {
         this.tenant = tenant;
    }

    protected override DbContext CreateInstance(IContext context)
    {
        return new DbContext(tenant.ConnectionString);
    }
}

10-08 18:50