Saya menginisialisasi konteks Objek Kerangka Entitas, dan ini memberi saya kata kunci yang tidak didukung kesalahan:
metadata=res://*/MainDB.csdl|res://*/MainDB.ssdl|res://*/MainDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Workspace\vs\Leftouch\Leftouch.Web\Data\Leftouch.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;App=EntityFramework"
Saya mengambil string koneksi langsung dari web.config yang berfungsi, dan hanya memodifikasi path ke file (yang saya atur secara dinamis), dan alih-alih menggunakan nilai default, menggunakan string koneksi ini secara eksplisit. Apa yang bisa menyebabkan kesalahan ini?
entity-framework
connection-string
Dapat Poyrazoğlu
sumber
sumber
metadata=res:
, kemudianres=somethingelse
dengan"
sintaksis di mana-mana - tetapi mereka harusnya senang mereka tidak berada di ruangan yang sama dengan saya sekarang: - /Jawaban:
Alasan sebenarnya Anda mendapatkan kesalahan ini adalah karena
"
nilai - nilai dalam string koneksi Anda.Jika Anda mengganti mereka dengan tanda kutip tunggal maka itu akan berfungsi dengan baik.
https://docs.microsoft.com/archive/blogs/rickandy/explicit-connection-string-for-ef
(Diposting agar orang lain bisa mendapatkan perbaikan lebih cepat daripada saya.)
sumber
"
adalah urutan melarikan diri untuk tanda kutip karena itu adalah karakter khusus dalam XML.Saya memperbaikinya dengan mengubah
EntityClient
kembali keSqlClient
, meskipun saya menggunakan Entity Framework.Jadi string koneksi lengkap saya dalam format:
sumber
Ini tampaknya hilang
providerName="System.Data.EntityClient"
sedikit. Anda yakin semuanya?sumber
metadata=res://*/MainDB.csdl|res://*/MainDB.ssdl|res://*/MainDB.msl;provider=System.Data.SqlClient;provider name=System.Data.EntityClient;provider connection string="{0};App=EntityFramework"
dan sekarang kata kunci tidak ditemukan: nama penyedia. Saya juga sudah mencobaproviderName=...
bukannyaprovider name=
, tetapi tidak berhasil.EntityConnectionStringBuilder
kelas, dan anehnya, ini berfungsi sekarang. Tapi saya masih tidak tahu mengapa itu tidak menerima string saya, bahkan dengan tambahan Anda.Percaya atau tidak, mengganti nama LinqPad.exe.config menjadi LinqPad.config menyelesaikan masalah ini.
sumber
Cukup gunakan \ "sebagai gantinya", itu harus menyelesaikan masalah.
sumber
Pastikan Anda memiliki
Data Source
dan tidakDataSource
dalam string koneksi Anda. Ruang itu penting. Percayalah kepadaku. Saya seorang idiot.sumber