Setelah mengunduh EF6 dengan nuget dan mencoba menjalankan proyek saya, itu mengembalikan kesalahan berikut:
Penyedia Entity Framework tidak ditemukan untuk penyedia ADO.NET dengan nama invarian 'System.Data.SqlClient'. Pastikan penyedia terdaftar di bagian 'entitasFramework' pada file konfigurasi aplikasi. Lihat http://go.microsoft.com/fwlink/?LinkId=260882 untuk informasi lebih lanjut.
entity-framework
Fernando Vellozo
sumber
sumber
providers
danprovider
sebagainya, jadi pertimbangkan untuk menghapusnya?public BaseStorage(): base ("RaptorDB") {}
,, BaseStorage () mewarisi dari DbContext di EF5 semuanya bekerja dengan baik, belum di EF6.Jawaban:
Saya baru saja mengalami masalah yang sama dan sepertinya EntityFramework meskipun diinstal dari Package Manager NuGet tidak diinstal dengan benar dalam proyek.
Saya berhasil memperbaikinya dengan menjalankan perintah berikut di Package Manager Console :
sumber
-Pre
opsi kirim nuget untuk menginstal paket pra-rilis. Saya tidak merekomendasikan menggunakannya. Saya memiliki kesalahan yang serupa tetapi solusinya hanya menginstal EntityFramework di proyek host. Saya telah menginstalnya di perpustakaan kelas tetapi tidak di proyek utama (web / konsol / atau apa pun),EntityFramework.SqlServer.dll
ke folder Debug - masalah terpecahkan.Anda telah menambahkan EF ke proyek perpustakaan kelas. Anda juga perlu menambahkannya ke proyek yang mereferensikannya (aplikasi konsol Anda, situs web atau apa pun).
sumber
EntityFramework.SqlServer.dll
sedang disalin ke direktori bin. Menambahkan referensi yang kuat dapat merusak arsitektur Anda (jika Anda membangun beberapa tingkatan, unit pelaksana tingkat atas Anda seharusnya tidak tahu tentang EF). Sebaliknya, Anda bisa memastikan penyedia SQL Server disalin. Lihat misalnya stackoverflow.com/a/19130718/870604Anda tidak perlu menginstal Entity Framework di aplikasi Konsol Anda, Anda hanya perlu menambahkan referensi ke perakitan EntityFramework.SqlServer.dll. Anda bisa menyalin perakitan ini dari proyek perpustakaan kelas yang menggunakan Kerangka Entity ke folder LIB dan menambahkan referensi untuk itu.
Singkatnya:
Saya harap ini membantu.
sumber
Anda juga dapat melihat pesan ini jika Anda lupa untuk memasukkan "EntityFramework.SqlServer.dll".
Tampaknya itu adalah file yang baru ditambahkan di EF6. Awalnya saya tidak memasukkannya ke dalam modul gabungan dan mengalami masalah yang tercantum di sini.
sumber
Alih-alih menambahkan EntityFramework.SqlServer ke proyek host Anda dapat memastikan referensi statis untuk itu dari proyek Model / entitas Anda seperti ini
Ini akan membuat proses pembangunan termasuk perakitan dengan proyek host.
Info lebih lanjut di blog saya http://andersmalmgren.com/2014/08/20/implicit-dependencies-and-copy-local-fails-to-copy/
sumber
Saat Anda menginstal Entity Framework 6 hingga
Nuget
. EntityFramework.SqlServer terkadang ketinggalan untuk dieksekusi lainnya. Cukup tambahkanNuget
paket ke proyek itu.Terkadang di atas tidak berfungsi untuk Proyek Uji
Untuk mengatasi masalah ini di Proyek Uji cukup tempatkan Metode ini di dalam Proyek Uji:
Metode ini tidak pernah dipanggil, tetapi sebagai pengamatan saya, kompiler akan menghapus semua majelis "yang tidak perlu" dan tanpa menggunakan
EntityFramework.SqlServer
barang-barang tes gagal.sumber
EntityFramework.SqlServer
ditambahkan ke perpustakaan kelas Anda, tetapi jika tidak digunakan, itu tidak akan ditempatkan di dalam folder keluaran aplikasi Anda. Saya memperbaiki masalah dengan menambahkanExecutionStrategy
, yang masih perlu saya lakukan, jadi menambahkan baris sepertiSetExecutionStrategy("System.Data.SqlClient", () => new SqlAzureExecutionStrategy());
di dalamDbConfiguration
kelas memperbaiki masalah.Tambahkan fungsi ini
ke kelas konteks database di kelas perpustakaan dan DLL EntityFramework.SqlServer.dll yang hilang akan disalin ke tempat yang benar.
.
sumber
FixEfProviderServicesProblem
saya mencoba di konstruktor, tanpa hasil.Tak satu pun dari ini bekerja untuk saya. Saya memang menemukan solusi dalam pertanyaan stackoverflow lain . Saya akan menambahkannya di sini untuk referensi mudah:
sumber
Saya mendapat kesalahan yang sama saat menggunakan Entity Framework 6 dengan SQL Server Compact 4.0. Artikel tentang MSDN untuk Penyedia Kerangka Entitas untuk EF6 sangat membantu. Menjalankan perintah penyedia masing-masing sebagai paket nuget di Package Manager Console dapat menyelesaikan masalah, karena paket NuGet juga akan secara otomatis menambahkan pendaftaran ke file konfigurasi. Saya berlari
PM> Install-Package EntityFramework.SqlServerCompact
untuk memecahkan masalah.sumber
Mengalami masalah ini hari ini ketika bekerja dengan satu set layanan web, masing-masing dalam proyek yang berbeda, dan proyek terpisah yang berisi tes integrasi untuk beberapa layanan tersebut.
Saya telah menggunakan pengaturan ini selama beberapa waktu dengan EF5, tanpa perlu menyertakan referensi ke EF dari Proyek Uji Integrasi.
Sekarang, setelah meningkatkan ke EF6, sepertinya saya perlu memasukkan referensi ke EF6 dalam proyek uji integrasi juga, meskipun itu tidak digunakan di sana (cukup banyak seperti yang ditunjukkan di atas oleh user3004275 ).
Indikasi Anda menghadapi masalah yang sama:
Poin ketiga adalah apa yang mengusir saya untuk sementara waktu, dan saya masih tidak yakin mengapa ini diperlukan. Menambahkan referensi ke EF6 dalam proyek Tes Integrasi saya menyelesaikannya dalam hal apa pun ...
sumber
Ketika kesalahan terjadi dalam proyek tes, solusi tercantik adalah menghias kelas tes dengan:
sumber
Proyek startup yang mereferensikan proyek di mana Entity Framework sedang digunakan membutuhkan dua majelis berikut di folder bin itu:
Menambahkan a
<section>
ke<configSections>
file .config pada proyek startup membuat perakitan pertama tersedia di direktori bin itu. Anda bisa menyalin ini dari file .config proyek Entity Framework Anda:Untuk membuat .dll kedua tersedia di folder bin, meskipun tidak praktis, salinan manual dari folder bin dari proyek Entity Framework dapat dibuat. Alternatif yang lebih baik adalah dengan menambahkan proyek Post-Build Events dari Entity Framework pada baris berikut, yang akan mengotomatiskan proses:
sumber
Saya baru saja mengalami masalah ini hari ini. Saya memiliki perpustakaan kelas repositori data dengan paket EF63 NuGet dan aplikasi konsol untuk pengujian, yang hanya merujuk pada proyek perpustakaan kelas. Saya membuat perintah post-build yang sangat sederhana, yang menyalin EntityFramework.SqlServer.dll dari folder Bin \ Debug perpustakaan kelas ke folder Bin \ Debug aplikasi konsol dan masalah diselesaikan. Jangan lupa untuk menambahkan bagian entityFramework ke file .config aplikasi konsol.
sumber
Tambahkan di bawah ini ke app.config Anda.
sumber
<configSections>
-<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
Menghapus Folder BIN berhasil untuk saya
sumber
Anda harus memaksakan referensi statis ke perakitan EntityFramework.SqlServer.dll , tetapi alih-alih meletakkan kode dummy, Anda bisa melakukan ini dengan cara yang lebih indah:
Jika Anda sudah memiliki kelas DbConfiguration :
Jika Anda tidak memiliki kelas DbConfiguration, Anda harus meletakkan kode berikut di startup aplikasi (sebelum EF digunakan):
sumber
Saya baru saja menginstal ulang Kerangka Entitas menggunakan Nuget. Dan ikuti instruksi yang tertulis di tautan di bawah ini: http://robsneuron.blogspot.in/2013/11/entity-framework-upgrade-to-6.html
Saya pikir masalahnya akan terpecahkan.
sumber
Rentangkan file YourModel.edmx dan buka kelas YourModel.Context.cs di bawah YourModel.Context.tt.
Saya menambahkan baris berikut di bagian menggunakan dan kesalahan diperbaiki untuk saya.
menggunakan SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
Anda mungkin harus menambahkan baris ini ke file setiap kali file dihasilkan secara otomatis.
sumber
Saya juga memiliki masalah yang sama. Masalah saya diselesaikan dengan melakukan hal berikut:
sumber
sepertinya tidak ada yang disebutkan pertama kali memeriksa apakah System.Data.SqlClient diinstal dalam sistem dan jika referensi dibuat untuk itu.
saya memecahkan masalah saya dengan menginstal System.Data.SqlClient dan menambahkan penyedia baru di app.Config
sumber
Pastikan juga Anda memulai proyek adalah proyek yang berisi dbcontext Anda (atau app.config yang relevan). Milik saya sedang mencoba untuk memulai proyek situs web yang tidak memiliki semua pengaturan konfigurasi yang diperlukan.
sumber
Saya mencoba hampir semua hal di atas dan tidak ada yang berhasil.
Hanya ketika saya mengatur DLL yang direferensikan di Proyek Default
EntityFramework
danEntityFramework.SqlServer
propertiCopy Local
untukTrue
mulai bekerja!sumber
semua orang yang saya butuhkan Perhatian Anda bahwa dua dll EntityFramework.dll Dan EntityFramework.SqlServer.dll adalah Pustaka lapisan DataAccess Dan tidak logis untuk menggunakannya dalam tampilan atau layer.it lain memecahkan masalah Anda tetapi tidak logis.
cara logis adalah atribut enitiess menghapus dan menggantinya dengan Fluent API. ini adalah solusi nyata
sumber
Saya punya satu aplikasi konsol dan perpustakaan kelas. Di perpustakaan kelas saya membuat Model Data Entitas (klik kanan ke Perpustakaan Kelas> Tambah> Item Baru> Data> ADO.NET Entity Data Model 6.0) dan meletakkan referensi di dalam aplikasi konsol. Jadi, Anda memiliki aplikasi konsol yang memiliki referensi ke perpustakaan kelas dan di dalam perpustakaan kelas Anda memiliki model EF. Saya memiliki kesalahan yang sama ketika saya mencoba untuk mendapatkan beberapa catatan dari tabel.
Saya mengatasi masalah ini dengan mengikuti langkah-langkah ini:
Hanya itu yang harus saya lakukan dan semuanya bekerja dengan sempurna.
Saya harap ini membantu.
sumber
Saya mempunyai kesalahan yang sama. Sungguh aneh bahwa itu hanya terjadi setiap kali saya menggunakan dbContext saya untuk menanyakan model saya atau mendapatkan daftar seperti:
Kami mencoba menginstal ulang Kerangka Entitas, referensi dengan benar tetapi tidak berhasil.
Untungnya, kami mencoba memeriksa
ALL
solusi untuk Nuget , kemudian memperbarui semuanya atau memastikaneverything
versi yang sama karena kami perhatikan bahwa kedua proyek memiliki versi EF yang berbeda di proyek Web. Dan itu berhasil. Kesalahan hilang.Berikut adalah tangkapan layar tentang cara Mengelola Nuget untuk semua solusi:
sumber
Anda hanya kehilangan referensi ke EntityFramework.SqlServer.dll. Untuk proyek EntityFramework menggunakan SQL Server, dua file yang perlu Anda rujuk adalah EntityFramework.SqlServer.dll dan EntityFramework.dll
sumber
Saya memiliki masalah terkait ketika bermigrasi dari CE db ke Sql Server di Azure. Hanya membuang 4 jam mencoba menyelesaikan ini. Semoga ini bisa menyelamatkan seseorang nasib yang serupa. Bagi saya, saya punya referensi ke SqlCE di file paket.config saya. Menghapusnya memecahkan seluruh masalah saya dan memungkinkan saya menggunakan migrasi. Yay Microsoft untuk teknologi lain dengan masalah pengaturan dan konfigurasi yang tidak perlu.
sumber
Saya memiliki masalah yang sama, hanya menyalin file App Config dari proyek yang berisi DBContext ke proyek pengujian saya
sumber
Saya memiliki pengecualian yang sama. saya termasuk
dan semuanya kembali bekerja lagi ..
sumber
Sebagai pesan menunjukkan bahwa kita perlu menambahkan penyedia System.Data.SqlClient itu sebabnya kita perlu menginstal paket nuget dari EntityFramework yang memiliki dua dll tetapi jika kita mengembangkan hanya aplikasi konsol maka kita hanya perlu menambahkan referensi EntityFramework.SqlServer.dll
sumber