Saya memiliki objek kerangka satu entitas dan ketika saya menambahkannya ke proyek saya, connectionstring
ditambahkan ke app.config
dalam connectionstring
bagian, tetapi ketika saya ingin membuat yang baru entitycontext
dan menggunakan ini connectionstring
, kesalahan ini muncul
entity-framework
entity-framework-4
pengguna421413
sumber
sumber
Jawaban:
Saya menduga bahwa masalah Anda berasal dari fakta bahwa Anda memiliki lebih dari satu proyek dalam solusi Anda dan yang berisi hal-hal kerangka kerja entitas Anda termasuk
edmx
file BUKAN proyek startup solusi. Dalam hal ini bahkan jika string koneksi ada dalamapp.config
proyek EF , CLR masih tidak dapat menemukannya saat runtime. Misalnya, jika Anda memiliki situs web dan proyek EF dalam solusi Anda, Anda perlu menyalin string koneksi dari proyek EFapp.config
ke situs web Andaweb.config
. Pada dasarnya, data string koneksi apa pun harus ada dalam file konfigurasi proyek yang dimulai oleh .Net oleh CLR (yaitu proyek startup Anda). Jika ini bukan kasus Anda, maka buka sajaedmx
file, klik kanan pada permukaannya, pilih properti dan salin string koneksi dan tempel keapp.config
bagian String Connection Anda . Dengan cara ini Anda dapat memastikan bahwa Anda memiliki yang benar dalam konfigurasi Anda.EDIT:
Seperti yang Anda lihat di sini di Documenation on ObjectContext Constructor , parameter pertama adalah nama connectionstring yang merupakan kode yang dihasilkan pada saat Anda membuat EDM Anda. Jika, entah bagaimana, nama koneksi Anda muncul, semua yang perlu Anda lakukan adalah mengklik kanan pada model Anda dan memilih "Perbarui Model Dari Basis Data ..." kemudian ikuti wizard untuk memperbarui pembuat dan desainer Anda untuk mencerminkan ini perubahan.
sumber
Anda perlu menyalin string koneksi di app.config ke web.config Anda, atau menyalin seluruh file ke proyek yang menampilkan output. Ini adalah salah satu syarat untuk menggunakan kerangka kerja.
sumber
Saya mengalami masalah ini ketika saya mencoba untuk menempatkan logika database kustom saya dalam. Dll untuk digunakan oleh beberapa proyek dalam solusi saya.
Sementara .dll memiliki file app.config yang benar, itu tidak berhasil. Kerangka kerja entitas menginginkan informasi koneksi di app.config dari .exe. Menyalin informasi ke sana berfungsi dengan baik.
Solusi Morteza untuk menyisipkan string koneksi langsung ke .edmx tidak bekerja untuk saya, karena itu tidak akan membiarkan saya menempelkan nilai di sana - meskipun itulah yang ingin saya lakukan.
sumber
Hai, saya punya masalah ini dan itu membuat saya gila. Bagaimanapun akhirnya saya menemukan apa masalahnya. Hal pertama yang harus Anda lakukan adalah memastikan bahwa
connectionstrings
dalamapp.config
danweb.config
sama. Maka Anda harus mengklik dua kali pada.edmx
file sehingga Anda bisa melihat tabel. Setelah Anda mengklik di mana saja di dekat tabel tetapi tidak di atas meja dan pergi ke properti. Dari daftar turun bawah, pilihConceptualEntityModel
dan cari Nama Kontainer Entitas dan ingatlah dengan baik.Selanjutnya pergi ke perancang file edmx dan buka konstruktor. (perancang adalah subfolder dari file edmx) konstruktor harus memiliki dua parameter dalam parameter BASE
ini salah satunya. parameter pertama harus memiliki nama file proyek di mana
.edmx
file tersebut masuk. Parameter kedua harus memiliki nama nama wadah entitas dari properti yang saya sebutkan sebelumnya. jangan lupa untuk mengatur semua konstruktor dengan:base("", "")
Setidaknya itu adalah masalah saya dan masalah saya terpecahkan seperti itu. Saya harap Anda bisa menyelesaikan masalah Anda seperti ini.
sumber
Saya memiliki variasi dalam hal ini yang sepertinya tidak seorang pun membahasnya.
Saya punya proyek utama dengan beberapa model, dan Proyek Uji yang berisi tes unit. Proyek Uji berhasil, tetapi kemudian berhenti dengan kesalahan yang disebutkan dalam OP. Saya belum melakukan penggantian nama atau pemindahan file EDMX.
Banyak saran yang disebutkan membandingkan file .config, tetapi proyek saya tidak memilikinya sama sekali.
Pada akhirnya, saya menyalin file app.config dari proyek utama ke proyek pengujian saya dan kemudian berhasil. Apakah ini langkah yang benar, atau akan menghadirkan masalah pemeliharaan ketika model tambahan ditambahkan, saya tidak tahu, tapi setidaknya pengujian unit saya berjalan dengan benar lagi sekarang.
sumber
Meskipun jawaban Morteza Manavi menyelesaikan masalah ini, solusi lain adalah membuat string koneksi secara dinamis dan meneruskannya ke konstruktor untuk ObjectContext Anda:
Ini menghilangkan kebutuhan untuk menyalin informasi string koneksi ke app.config proyek startup Anda yang, setidaknya dalam kasus saya, tidak diinginkan.
sumber
Saya lupa menambahkan providerName = "System.Data.EntityClient" sebagai atribut dalam string koneksi. Ini mengakibatkan kesalahan ini begitu
dari pada
sumber
Saya baru saja menemukan bahwa jika sebuah aplikasi dibuat di IIS dari VS2010 dua tingkat dari root situs web kesalahan ini akan terjadi. Tidak yakin mengapa itu terjadi, perlu diselidiki lebih lanjut. Misalnya, jika aplikasi Anda berada di jalur ini:
/admin/advertiser
kesalahan akan muncul jika Anda tidak memiliki/admin
direktori virtual di situs IIS Anda.Yang saya lakukan adalah membuat
admin
direktori kosong di.../intepub/wwwroot
kesalahan saya menghilang.Anda akan menemukan bahwa Anda tidak akan dapat memulai debugging sampai Anda melakukan langkah di atas.
Kami memiliki masalah ini di tim kami di masa lalu, butuh beberapa waktu untuk mengingatnya tetapi ini adalah bagaimana kami memperbaikinya sebelumnya.
sumber
Saya menggunakan arsitektur n'tier dan mendapat masalah yang sama tetapi yang ini membantu saya. Semoga ini bisa membantu Anda. Pertama Anda memiliki hal yang sama
connection string
pada Anda dilibraries
mana Anda dapat mengakses DB seperti diapp.config
danweb.config
setelah itu Anda cukup menambahkan konstruktor kelebihan beban dalam file .edmx (Model.context.cs) yang sekarang Anda memiliki dua konstruktor satu default dan yang lain baru saja Anda tambahkan ( kelebihan beban).sumber
Saya memiliki perpustakaan kelas yang juga tidak ingin bekerja dengan EF. Setelah saya menyalin app.config (atau hanya bagian connectionstring) dari perpustakaan kelas saya ke proyek exe koneksi bekerja dengan baik! Mungkin file config diharapkan berada di folder yang sama dengan proyek exe dan karenanya tidak ditemukan. Jadi, selalu berhati-hatilah saat file konfigurasi digunakan dalam proyek perpustakaan kelas!
sumber
Yah ... masalah ini bisa juga karena alasan (bodoh) yang sangat sederhana ... Saya menyalin file dari proyek lain dan lupa mengubah ConnectionString pada EntityDataSource ... saat saya berada di awal proyek dan terjadi di halaman login, saya pikir itu adalah sesuatu di konfigurasi, tetapi hanya nama string koneksi yang salah (dan DefaultContainerName).
sumber