我正在遇到搜索/查找此方案示例的心理障礙。SQL Server,Entity Framework多個動態連接字符串,
用戶-A登錄並連接到「abcServer」上的「主」數據庫以驗證帳戶。 一旦批准,服務器將「unique-A」數據庫的連接字符串返回給「abcServer」上的用戶A.
我知道的DbContext在EF具有構造函數分配CONNSTRING的名字,但我想這是動態的:
(1)的DbContext
// dbContext constructor
public MasterDatabase() : base("name=MasterDatabase")
{
Configuration.LazyLoadingEnabled = false;
}
(2)默認連接
// web.config
<connectionStrings>
<add name="MasterDatabase" connectionString="Data Source=abcServer;Initial
Catalog=Master;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
但是,這是它的HA connStr的rd編碼。該項目的其餘部分是關於在他/她的db中使用EF類的相應用戶,直到從成功登錄返回連接字符串纔會被確定。是這樣的:
(3)在控制器的方法改變康恩串
// in api controller, once log in successful, call to method return value as parameter
private void Connect2DbwithThisUsersConnString(string connStr)
{
// change the conn string & USE THIS CONTEXT to this user's db
}
的這個任何asp.net/mvc例子?提前致謝。在這裏堅果。
請記住:我不知道連接字符串,直到登錄。這可能是一個新用戶,需要一個新的數據庫即時創建和connStr傳遞。我無法硬編碼一個唯一的dbContext「base」或conn字符串。
非常感謝您的關注!
Remus,我不想使用Azure。任何使用獨立MsSql服務器的例子?對不起,錯字,非天青例子的任何鏈接? –
我的回覆是關於非天藍色的版本。只有最後的意見是建議聯盟作爲替代方案。 –
所有用戶都共享相同的上下文,但在差異dbs。如果我對這些類進行了更改,並且遷移設置爲true,那麼我無法看到架構更改和數據庫升級的問題。 –