在應用程式設定中使用相對路徑決定SQL Express 資料庫位置
在使用SQL Express 資料庫的C# 單元測試專案中,有必要定義一個連接字串,該字串允許相對於應用程式位置的路徑。這比明確指定資料庫檔案的絕對路徑更可取,如:
AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf
最初考慮是否|DataDirectory|可以用於此目的。然而,我們發現這主要適用於 Web 應用程序,可能與控制應用程式設定檔中的資料庫位置所需的配置設定不太一致。
為了克服這項挑戰,實作了一種混合方法,如提供的解決方案所述:
app.config file:
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
單元測試類別:
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // rest of initialize implementation ... }
此方法將連接字串中的相對路徑定義與DataDirectory 的分配結合起來單元測試類別中的屬性,確保在單元測試期間資料庫檔案相對於應用程式的可執行檔定位,同時仍允許在生產中使用託管SQL 資料庫環境。
以上是如何在 C# 單元測試中指定 SQL Express 資料庫位置的相對路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!