我最初在我的網站的App_Code文件夾中編寫了一個數據訪問層。然後我們在一個單獨的項目中開發了一個Web服務。爲了使網站和Web服務都可以訪問相同的DAL,我將它移到了不同的項目中。我有一個包含tableadapters的數據集,爲了讓DAL項目編譯,我必須將連接字符串添加到應用程序屬性設置中。但這意味着我必須爲每個部署重新編譯DAL。另外,我可能在使用相同DAL的服務器上有2個或3個網站。所以我想在每個網站的web.config中設置連接字符串並將其保留。 每次我創建一個tableadapter的實例時,是否必須通過我的代碼並進行更改? 例如從連接字符串與DAL在單獨項目中的問題
using (MessageQueue adaptor = new MessageQueue())
{
return adaptor.GetMessages(UserId, MobileId, StartDate, EndDate);
}
到
using (MessageQueue adaptor = new MessageQueue())
using (OracleConnection connection = new OracleConnection(OracleUtilities.ConnectionString))
{
adaptor.Connection = connection;
return adaptor.GetMessages(UserId, MobileId, StartDate, EndDate);
}
還是有更好的辦法?
科林
公用事業類的作品。它在內部使用ConfigurationManager並正確地從web.config中檢索連接字符串。但數據集設計人員需要應用程序設置,並且代碼當前不使用該實用程序。我想我將不得不動態設置每個表適配器連接。或者,還有更好的方法? – Colin 2009-08-04 15:36:22
我認爲DataSet設計器直接使用了這個ConnectionStrings部分。但是,如果沒有,也許你可以使用工廠模式來返回正確配置的適配器...這樣,至少表適配器的動態設置全部在一個地方完成。 – freshr 2009-08-05 05:37:53