Menentukan Lokasi Pangkalan Data SQL Express Menggunakan Laluan Relatif dalam Konfigurasi Aplikasi
Dalam projek ujian unit untuk C#, di mana pangkalan data SQL Express digunakan, adalah perlu untuk tentukan rentetan sambungan yang membenarkan laluan relatif kepada lokasi aplikasi. Ini adalah lebih baik daripada menyatakan secara eksplisit laluan mutlak ke fail pangkalan data, seperti:
AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf
Pada mulanya, ia dianggap sama ada |DataDirectory| boleh diambil bekerja untuk tujuan ini. Walau bagaimanapun, didapati bahawa ini adalah terpakai terutamanya untuk aplikasi web dan mungkin tidak sejajar dengan persediaan konfigurasi yang diingini untuk mengawal lokasi pangkalan data dalam fail konfigurasi aplikasi.
Untuk mengatasi cabaran ini, pendekatan hibrid telah dilaksanakan , seperti yang digariskan dalam penyelesaian yang disediakan:
app.config fail:
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
Kelas ujian unit:
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // rest of initialize implementation ... }
Pendekatan ini menggabungkan definisi laluan relatif dalam rentetan sambungan dengan penugasan DataDirectory harta dalam kelas ujian unit, memastikan bahawa fail pangkalan data terletak relatif kepada boleh laku aplikasi semasa ujian unit, sementara masih membenarkan penggunaan pangkalan data SQL dihoskan dalam persekitaran pengeluaran.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Laluan Relatif untuk Lokasi Pangkalan Data SQL Express dalam Ujian Unit C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!