SQL Express 接続文字列: アプリケーションに相対的な MDF ファイルの場所の指定
C# 単体テストで SQL Express データベースを操作する場合、次のことが可能です。接続文字列で MDF ファイルへの絶対ファイル パスを指定するのは不便です。代わりに、相対パスまたは変数を使用することをお勧めします。
.NET Core Web アプリケーション:
.NET Core を使用する Web アプリケーションでは、DataDirectory を利用できます。変数を使用してアプリケーションのデータ ディレクトリを動的に参照します。このディレクトリは通常、デフォルトで wwwrootApp_Data にあります。 appsettings.json で接続文字列を次のように構成できます:
{ "ConnectionStrings": { "MyConnectionString": "Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes" } }
.NET Core デスクトップ アプリケーション:
.NET Core のデスクトップ アプリケーションの場合、DataDirectory変数はサポートされていません。代わりに、単体テスト フィクスチャまたはセットアップ メソッドで DataDirectory プロパティを設定できます:
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // Rest of initialization logic }
このセットアップでは、DataDirectory 変数を使用して appsettings.json で接続文字列を指定できます:
{ "ConnectionStrings": { "MyConnectionString": "Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes" } }
どちらの場合も、Databases ディレクトリがプロジェクトに含まれており、そこに必要な MDF ファイルが含まれていることを確認してください。
以上が.NETアプリケーションでSQL Express MDFファイルの場所を相対的に指定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。