Saya SANGAT baru untuk ASP.NET MVC (3) dan saya mengalami kesulitan menyelesaikan kesalahan build di Visual Studio:
Tipe atau nama namespace 'DbContext' tidak dapat ditemukan (apakah Anda melewatkan arahan menggunakan atau referensi rakitan?)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
namespace MyProjectName.Models
{
public class MachineModel
{
// name
[Required]
[Display(Name = "Nom de la machine")]
public string Name { get; set; }
// IP
[Required]
[RegularExpression(@"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",
ErrorMessage = "Donnez une adresse IPv4 valide.")]
[Display(Name = "Adresse IP de la machine")]
public string IP { get; set; }
}
public class MachineDbContext : DbContext
{
public DbSet<MachineModel> Machines{ get; set; }
}
}
Dua kesalahan yang saya dapatkan adalah:
- Tipe atau nama namespace 'DbContext' tidak dapat ditemukan (apakah Anda melewatkan arahan menggunakan atau referensi rakitan?)
- Jenis atau nama namespace 'DbSet' tidak dapat ditemukan (apakah Anda melewatkan direktif penggunaan atau referensi perakitan?)
Apa yang saya lewatkan?
Jawaban:
Saya memiliki masalah yang sama. Ternyata, Anda memerlukan referensi EntityFramework.dll (dan bukan System.Data.Entity).
Saya baru saja menariknya dari aplikasi MvcMusicStore yang dapat Anda unduh dari: http://mvcmusicstore.codeplex.com/
Ini juga merupakan contoh berguna tentang cara menggunakan kode kerangka kerja-pertama dengan MVC
sumber
Anda perlu mereferensikan
System.Data.Entity
assebmly ke proyek Anda atau menginstalEntityFramework
paket NuGet yang akan mengatur semuanya untuk Anda.sumber
References
item dalam proyek dan pilihAdd Reference...
. Kemudian di.NET
tab, pilihSystem.Data.Entity
. Dan jika Anda ingin menggunakan NuGet, klik kanan padaReferences
item tersebut dan kemudian pilihAdd Library Package Reference...
dan di tab Online, cariEntityFramework
.TOOLS > Library Package Manager > Package Manager Console
VS2012 dan mengetikinstall-package EntityFramework
di prompt. Bekerja dengan sempurna.Hanya catatan singkat. Ini adalah DbContext, bukan DBContext. yaitu dengan huruf kecil 'B'. Saya menemukan ini karena saya memiliki masalah yang sama ketika intelesense tidak berfungsi sampai saya mencoba mengetikkan nama lengkap System.Data.Entity ruang ... dan nama dan akhirnya menyarankan opsi huruf kecil 'b': -
System.Data.Entity.DbContext
sumber
Saya memiliki masalah yang sama menggunakan VS2010. Saya tahu ini bukan jawaban. Saya hanya berpikir itu mungkin membantu seseorang. Saya mengatasinya dengan menggunakan nama yang sepenuhnya memenuhi syarat untuk DBContext.
Dari pada
Saya menggunakan
dan membangun kembali proyek. Tiba-tiba VS bahagia, dan saya bahkan dapat menghapus nama yang sepenuhnya memenuhi syarat, dan hanya menggunakan DBContext.
sumber
Saya memiliki masalah yang sama ... Menginstal EF dari Package Manager Console bekerja untuk saya
perintahnya adalah:
Install-Package EntityFramework
sumber
Jika kompiler Anda tidak mengenali
yakinkan
dalam file .csproj Anda, Anda memiliki referensi berikut
dalam elemen
yang menampung referensi ke majelis lain.
sumber
Saya punya masalah yang sama..Saya punya VS2010 express ..
(Catatan: Jika Anda melihat masalah ini, coba periksa referensi ke EntityFramework.dll .. Mungkin hilang.)
Berikut ini diselesaikan untuk saya.
Saya menginstal Pembaruan Alat 3 MVC terbaru
kemudian saya menginstal EntityFramework 4.1
atau menggunakan NUGet yaitu. dari dengan Visual Studio 2010 Express (Tools-> Library Package Manager -> Tambahkan pustaka Referensi paket -> Pilih Online -> EntityFramework)
Anehnya itu tidak berhasil .. Jadi saya harus secara manual menambahkan referensi ke "EntityFramework.dll"
coba lakukan pencarian untuk dll .. mungkin ada di sini
"C: \ Program Files (x86) \ Assemblies Referensi \ Microsoft \ Framework.NETFramework \ v4.0 \ "
Jika sudah memilikinya..hanya tambahkan referensi '.net'.
Catatan: Jika Anda menggunakan NuGet, itu membuat folder "paket" di samping direktori Solusi Anda. Anda akan menemukan folder "EntityFramework.4.1.10331.0" di dalamnya. Dalam folder "Libs" Anda akan menemukan "EntityFramework.dll".
Tambahkan referensi untuk itu menggunakan tab Browse dan pilih dll di atas.
sumber
Saya menggunakan Visual Studio 2010 express dan menambahkan referensi untuk
C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dll
menyelesaikan masalah.sumber
Ini sangat membantu:
sumber
Untuk petunjuk langkah demi langkah, lihat seri tutorial MVC / EF baru ini: http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp -net-mvc-application Tutorial ini mengasumsikan Anda telah menginstal Pembaruan Alat 3 MVC terbaru dan menyediakan tautan jika Anda belum.
sumber
Proyek Anda tidak dapat menyelesaikan kelas EntityFramework hingga Anda tidak menambahkannya di proyek Anda. Untuk menambahkan dukungan EntityFramework Anda harus mengikuti langkah-langkah ini: Tools-> Nuget Package Manager -> Kelola paket Nuget untuk menelusuri solusi EntityFramework Ini menunjukkan versi stabil EntityFramework terbaru. saat ini 6.1.3 adalah versi terbaru Instal untuk proyek yang dipilih.
sumber
Unduh http://www.dll-found.com/download/e/EntityFramework.dll
Rekatkan di (untuk x86)
Kemudian Benar pada proyek -> tambahkan referensi -> pilih EntityFramework
Bingo......
sumber
Visual Studio Express SP1 Klik kanan di Solution Explorer> Referensi> Tambahkan Referensi Paket Perpustakaan> EntityFramework
sumber
Gunakan CTP5 sebagai gantinya adalah versi yang lebih baru dengan beberapa perubahan dalam API. Anda harus menambahkan referensi ke EntityFramework.dll yang diinstal di direktori CTP - standarnya adalah: c: \ Program Files \ Microsoft ADO.NET Fitur Kerangka Entitas CTP5 \ Binaries \ EntityFramework.dll untuk sistem 32bit. Pada sistem 64bit itu akan ditempatkan di Program Files (x86).
sumber
Ini terjadi pada saya ketika saya bercabang kode. Untuk memperbaikinya saya mengklik kanan proyek saya di Visual Studio, memilih mengelola paket Nu-get, menghapus EntityFramework, lalu menginstalnya kembali. Masalah terpecahkan
sumber
Saya baru saja mengalami masalah ini dan tidak ada solusi lain yang bekerja untuk saya. Saya menggunakan Visual Studio 2010 dan saya punya dua proyek dalam solusi saya: UIProject dan DataAccessProject. Proyek UIP memiliki referensi ke DataAccessProject.
UIProject saya menargetkan .Net Framework 4 tetapi DataAccessProject saya menargetkan .Net Framework 3.5 karena beberapa alasan.
Masalah terpecahkan. Sekarang saya punya referensi untuk EntityFramework dan System.Data.Entity
sumber
Saya memiliki masalah yang sama. Saya harus menulis ulang "DBContext" setelah menambahkan referensi ke entitasframework dan itu menyelesaikan masalah.
ini berarti bahwa Visual studio tidak dapat mengenali kelas secara otomatis dan menunggu untuk diketik ulang. jadi yang terbaik untuk menambah referensi pertama dan kemudian menerapkan kode. VS 2013 - ultimate digunakan
sumber
Saya harus terlebih dahulu menghapus EntityFramework (Uninstall-package EntityFramework (tampaknya tidak case-sensitive)), lalu pasang lagi (Instal-paket EntityFramework), melalui Konsol PM
sumber
Saya punya masalah ini, baca jawaban di atas dan unduh entityframework.ddl tetapi ternyata sudah direferensikan. Jadi saya menambahkan namespace dan masalah terpecahkan
menggunakan System.Data.Entity;
Saya menggunakan Visual Studio 2010, SP1 diinstal
sumber
memiliki direferensikan entityframework.dll kedua system.data.entity bekerja.
sumber
Saya memiliki kesalahan yang sama tetapi masalahnya hanya masalah tidak disengaja dengan model saya.
Saya tidak sengaja menaruh ...
... di dalam kelas model.
sumber
Sebagai cara alternatif, Anda dapat pergi DI SINI - instruksi cara menginstal dll yang diperlukan.
Atau Anda dapat mengunduh NuGet dan mengelolanya dari VS
sumber
Klik kanan referensi Anda dan pergi untuk mengelola paket NuGet, lalu pilih online all, lalu sumber paket NuGet di kotak teks pencarian dengan Entity Framework dan instal.
sumber
1) Menghapus Instalasi Kerangka Entitas dari Semua proyek
2) Mulai ulang Visual Studio
3) Menginstal ulang ke semua proyek yang diperlukan
dan mulai bekerja
sumber
Mungkin ada kasus di mana Anda mereferensikan semua yang Anda perlukan dan Anda bahkan bisa masuk ke Definisi dengan menekan F12 pada kelas DbContext yang akan membawa Anda ke namespace System.Data.Entity tetapi Anda masih mendapatkan peringatan kompiler jahat ini. Pastikan bahwa Kerangka Target proyek Anda dan versi Kerangka Entitas yang Anda gunakan cocok. Pergi ke Project-> Properties-> Tab Aplikasi. Ubah Kerangka Target (tidak bisa mengatakan yang mana, percobaan dan kesalahan akan membantu.). Hanya dua sen saya.
sumber
Saya juga jengkel karena masalah ini berkali-kali dan akhirnya menemukan solusinya. Pergi ke file edmx-> Update Model from Database-> Refresh-> Finish. Solusi Bersih-> Rebuild Solution
sumber
Anda dapat mencoba konsol manajer paket
PM> EntityFrameWork \ enable-migrasi
sumber
Seperti yang disarankan orang lain:
Lihat di bawah dan lihat apakah Anda dapat memberi tahu saya apa yang salah:
public class PanelLengthContext : DBContext { }
??!Pastikan nama kelas tidak salah eja - (sensitivitas huruf)!
DbContext
adalah ejaan yang benar.public class PanelLengthContext : DbContext {}
HTH
sumber
Saya memiliki masalah yang sama seperti Anda, saya tidak dapat mengimplementasikannya di kelas Pengontrol sementara ia bekerja ketika saya memasukkannya ke dalam kelas model. Tambahkan kode ini di bagian atas kelas controller Anda
sumber
Saya telah menghadapi masalah yang sama dan kemudian saya telah menambahkan namespace
Setelah Menambahkan itu berfungsi dengan baik
Coba ini dapat membantu Anda untuk menyelesaikan masalah Anda
dan sebelum itu instal framework entitas dari Nuget Manager
sumber