我有一個名爲 「Config」的數據庫,其中有一個名爲「Customer」的表 在Customer表中,我持有登錄憑證以及連接字符串到客戶端的數據庫。Asp.net MVC2 - 多個數據庫
在我的控制器,我檢查,看見我查詢了哪些客戶數據庫
String connectionString = "";
if (id == 1)
connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Client1.mdf;Integrated Security=True;User Instance=True";
else if (id == 2)
connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Client2.mdf;Integrated Security=True;User Instance=True";
using (TestDbaseDataContext db = new TestDbaseDataContext(connectionString))
{
var searchRecords = db.SearchRecords;
return View(searchRecords.ToList());
}
會有客戶使用不同的數據庫的人數不詳,這些連接字符串將改變基於歸檔狀態,和其他因素。我不認爲在app.config中編寫這些字符串將會做我所需要的。
我有一個「主」數據庫,它包含客戶端的所有配置設置以及客戶端的數據庫連接字符串。 mater數據庫僅用於緩解要搜索的客戶端數據庫。我將連接字符串存儲在master數據庫中,這樣我就可以爲登錄的客戶傳遞該連接字符串以查詢正確的數據庫。這是一個要求,讓每個客戶端在它自己的數據庫中
你將如何存儲這個連接字符串,所以我可以傳遞給我的datacontext需要時? 它應該存儲在會話變量中,還是應該在每個控制器方法中查詢Config數據庫Customer表?
IMO,會話變量或加密的cookie非常適合這種情況。 – 2010-10-04 15:46:08
我不認爲即使是加密的cookie在這裏也不是一個好主意 - 不需要將憑證發送到客戶端。 – 2010-10-04 15:58:18
正確的,我不需要客戶端憑證,只是它們已經通過身份驗證,並且這是如何訪問數據庫(ConnectionString) – 2010-10-04 16:13:56