2010-05-10 42 views
2

我有一個包含50個數據庫的SQL服務器。每個人都有完全相同的模式。 我使用了令人敬畏的Subsonic 2.2創建基於其中之一的DAL。在線更改連接

我需要遍歷數據庫名稱列表並連接到每個數據庫名稱並一次執行一個更新。

如果有方法可以改變subsonic使用連接字符串的方式。我相信我需要將連接字符串存儲在內存中,這樣可以不斷更改。

這可能嗎?

我試圖做一個

ConfigurationManager.ConnectionStrings["theConnStrName"].ConnectionString = updated-connection-string-here; 

..但沒有

謝謝合作!

回答

1

Subsonic主要是爲一個數據庫設計的。 我已經完成了多種數據庫。我已經發布了一個完整的示例,用於在亞音速舊版論壇中即時創建提供程序。這些帖子現在已經消失了。您可以嘗試的是在配置文件(yourProviderName)中設置一個提供程序,並使用虛擬連接字符串來初始化亞音速,然後根據需要在代碼中設置實際連接字符串。這隻適用於一個數據庫,但我認爲這是你需要的。如果您想同時使用多個數據庫,並涉及更多的代碼和對亞音速2.x內核的一些更改。

DataProvider provider = DataService.GetInstance(yourProviderName); 
foreach(string connString in connectionStrings) 
{ 
    provider.DefaultConnectionString = connString; 
    DataService.Provider = provider; 
    // ... do stuff 
} 
+0

嘿保羅,我剛剛在網上輸入了同樣的問題,並從4年前發現我的舊帖子!您可以請分享您爲「亞音速2.x核心」編寫的自定義代碼。那有訣竅嗎? – aron 2014-03-01 05:07:56

1

我不認爲如果不爲每個數據庫創建一個SubSonic提供程序就很容易修復。

相反,我會把SubSonic-source作爲解決方案中的一個項目,並且調試我的方式來最好和最乾淨的地方擴展代碼wwith某種連接字符串字典列表和功能來設置你想要的給定的時間。