我的解決方案有兩個項目。一個類庫,用於通過存儲庫類從實體框架.edmx文件生成數據。 App.Config文件connectionString與我的第二個ASP.Net 4.0 Web窗體項目中的Web.config匹配。web.config和app.config中的不同實體框架連接字符串問題
我將BOTH connectionStrings修改爲在部署到測試服務器時指向測試數據庫(DataSource = TestDB)。在部署到活動站點時,我將兩者都修改爲指向活動數據庫(DataSource = LiveDB)。
在Site.Master的頂部,我用標籤控件中的紅色字母「您連接到TEST數據庫」顯示。我有條件地切換標籤的.Visible屬性if (context.Connection.DataSource.Contains("TestDB"))
在開發過程中,我注意到一些奇怪的東西。當Web.config指向TestDB時,如果我忘記使App.config匹配(並指向LiveDB),則會顯示「連接到測試」警告,但會顯示來自LiveDB的數據。
這告訴我存儲庫(類庫)使用App.Config,但在Web窗體項目中創建的數據上下文使用Web.config connectionString。那是對的嗎?我擔心,如果我部署到測試站點並忘記將App.Config指向TestDB,則實時數據將不正確地更新。
所以我的問題是,在這種情況下...... 什麼是最好的方式來顯示通知「連接到測試數據庫」總是準確的?
但在我的情況下,這似乎並不是真實的。爲什麼當Web.config指向測試並且App.Config指向活的時候顯示實時數據? – DeveloperDan 2012-08-17 14:05:38
@DeveloperDan - 您確定沒有直接加載配置,使用'ConfigurationManager'上的'Open * Configuration'方法之一? – Oded 2012-08-17 14:09:13
我沒有使用ConfigurationManager。類庫.edmx是使用嚮導和數據庫更新模型構建的。在我的Web窗體應用程序中,我執行:MyDataProject.MyEnities context = new MyDataProject.MyEnities()然後在問題中使用if語句。 – DeveloperDan 2012-08-17 14:14:19