ホームページ >データベース >mysql チュートリアル >C# 単体テストで SQL Express MDF ファイルの相対パスを使用するにはどうすればよいですか?

C# 単体テストで SQL Express MDF ファイルの相対パスを使用するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-11 10:59:44435ブラウズ

How Can I Use Relative Paths for SQL Express MDF Files in C# Unit Tests?

C# 単体テストでの SQL Express MDF ファイル パスの管理

C# 単体テストは SQL Express データベースに依存することが多く、通常は接続文字列の絶対パスを介して MDF ファイルを参照します。 このアプローチは柔軟性がありません。 より堅牢なソリューションには、相対パスまたは環境変数を使用してデータベース ファイルを動的に見つけることが含まれます。

|DataDirectory| は Web アプリケーションでよく使用されますが、コンソールや他の非 Web アプリケーションには直接適用できません。 解決策は、DataDirectory プロパティを手動で設定し、それに応じて接続文字列を構築することです。

これが実際的な例です:

<code class="language-xml"><configuration>
  <connectionStrings>
    <add connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" name="MyConnectionString" />
  </connectionStrings>
</configuration></code>

単体テスト クラス内で、テスト実行前に DataDirectory プロパティを設定します。

<code class="language-csharp">[TestInitialize]
public void TestInitialize()
{
    string databaseDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases");
    AppDomain.CurrentDomain.SetData("DataDirectory", databaseDirectory);

    // ... remaining test initialization ...
}</code>

この方法では、接続文字列内で相対パスを使用できるため、アプリケーション構成ファイルを介してデータベース ファイルの場所をより適切に制御できるようになり、コードの保守性と移植性が促進されます。

以上がC# 単体テストで SQL Express MDF ファイルの相対パスを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。