Konfigurasi Laluan Relatif untuk Rentetan Sambungan SQL Express
Dalam projek ujian unit anda, anda menghadapi cabaran untuk menentukan lokasi pangkalan data MDF anda fail relatif kepada lokasi aplikasi. Anda berhasrat untuk menentukan rentetan sambungan dalam fail app.config, tetapi anda lebih suka mengelakkan laluan mutlak seperti yang anda sediakan.
Menggunakan |DataDirectory| dalam Aplikasi Bukan Web
Bertentangan dengan andaian anda, |DataDirectory| terpakai bukan sahaja untuk aplikasi web tetapi juga boleh digunakan dalam aplikasi bukan web. Ia mewakili laluan pemegang tempat berbanding dengan direktori aplikasi. Dalam kes anda, anda boleh menetapkan |DataDirectory| nilai ke laluan di mana pangkalan data anda berada.
Melaksanakan Penyelesaian
Untuk melaksanakan penyelesaian yang anda inginkan, ikuti langkah berikut:
App.config Konfigurasi:
Tentukan rentetan sambungan anda dalam app.config menggunakan |DataDirectory| sebagai pemegang tempat untuk laluan relatif:
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
Tetapan HartaDataDirectory:
Dalam kelas ujian unit anda, gunakan |TestInitialize| kaedah untuk menetapkan |DataDirectory| harta ke laluan yang dikehendaki:
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // Rest of initialization code... }
Di sini, |Pangkalan Data| folder diandaikan sebagai subfolder bagi direktori aplikasi anda.
Dengan konfigurasi ini, ujian unit anda boleh mengakses pangkalan data menggunakan laluan relatif, tanpa mengira laluan sebenar lokasi permohonan.
Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi Laluan Relatif untuk Rentetan Sambungan SQL Express dalam Ujian Unit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!