3
我們正在構建一個利用ASP.NET MVC,Entity Framework Code First和即將發佈的SQL Azure Federations的多租戶數據庫應用程序。我們的存儲庫接受一個DbContext作爲使用Ninject注入的構造函數參數。問題是DbContext有一個int構造函數參數來指定將用於使用該上下文進行請求的帳戶ID。類似這樣的:Ninject - 來自會話的構造函數參數
public class DatabaseContext : DbContext
{
public DatabaseContext(int accountId)
{
// Code here to ensure we only work with data associated with
// the account identified by accountId
}
}
帳戶ID的值將存儲在Session變量中。問題是我們如何讓Ninject在創建DatabaseContext的新實例時將Session中的值注入構造函數中?
或者還有另一種方法我應該去注入帳戶ID到DbContext?
這很有道理。謝謝你的幫助。 –
對於ISessionManager爲+1。這就是我要建議的。 –
你也可以注入一個'IDbContextFactory'的實現,它有一個方法:'DbContext GetContext(int accountId);' –