Der Typ- oder Namespace-Name 'Entity' ist im Namespace 'System.Data' nicht vorhanden.

74

Ich verwende die WS-Klasse und es gab mir Fehler beim Ausführen der Anwendung:

The type or namespace name 'Entity' does not exist in the namespace 'System.Data' 

Ich habe einen Verweis auf das System.Data;und auf System.Data.Entity; Aber keine Änderungen. Ich bekomme immer wieder den Fehler. Ich habe auch in der web.config die Zeile:

<compilation debug ="true" targetFramework="4.0"/>
st mnmn
quelle
1
Wird im Objektbrowser für die System.Data-Assembly dieser Entity-Namespace angezeigt? Überprüfen Sie auch, ob Sie auf die richtige Version der Framework-Bibliothek verweisen. System.Dll ist 4.0V
Zenwalker
3
Haben Sie das Entitiy Framework installiert? Weil ich glaube, dass es zu diesem Paket gehört.
Zenwalker
das denkst du? aber ich benutze den gleichen Code in einem anderen Projekt und es funktioniert gut!
St. Mnmn
Hmm .. Entschuldigung, ich habe mich geirrt. Googeln, ich habe diesen Link gefunden. Ich hoffe es hilft? forums.asp.net/t/1195753.aspx/1
Zenwalker
1
System.Date.EntityDer Namespace ist nur dann sinnvoll, wenn auf EntityFramework.dll verwiesen wird.
Ladislav Mrnka

Antworten:

100

Klicken Sie im Visual Studio Solution Explorer mit der rechten Maustaste auf die Lösung. Klicken Sie auf Nuget-Pakete für Lösung verwalten und installieren Sie EntityFramework

Tony Ding
quelle
2
(Einschließlich automatisch alles für Sie zu tun, was in den anderen Antworten angegeben ist).
Matty J
Die akzeptierte Antwort war für mich richtig, da ich EntityFramework bereits installiert hatte und es das Upgrade auf eine neue Version war, das dieses Problem für mich verursachte.
Chris Schiffhauer
1
Eine StackOverflow-Antwort auf die Installation von Entity Framework für Dummies (wie ich).
user272735
8
Ich hatte es bereits installiert, aber ich habe ein "Update-Paket-Neuinstallation" durchgeführt und es hat mein Problem
behoben
39

Hallo, dieser Beitrag ist sehr irreführend, wenn Sie dies 2 Jahre später lesen.

Bei der Verwendung von EF6 und .net 4.5.1 in VS 2013 musste ich auf Folgendes verweisen, damit dies funktioniert

using System.Data.Entity.Core.EntityClient;

ein bisschen anders als vorher,

Dies ist eher eine Information für Leute, die hierher kommen, um Hilfe bei neueren Problemen zu erhalten, als eine Antwort auf die ursprüngliche Frage

AlanMorton2.0
quelle
13
Wenn 'Entity' in System.Data nicht vorhanden ist, wie begründen Sie dann, dass System.Data.Entity.Core.EntityClient funktioniert?
Tim
1
Dies ist spezifisch für EF 6.3+, wo der CoreTeil des Namespace eingeführt wurde (siehe Dokumentation )
gabe
29

Danke an alle! Ich habe die Lösung gefunden. nicht, dass ich verstehe warum, aber ich habe es versucht und es hat funktioniert! Ich musste nur einen Verweis hinzufügen auf: System.Data.Entity.Design und muss keinen usingin den Code schreiben . Vielen Dank!

st mnmn
quelle
11
Nach dem Upgrade auf EF 6.1 musste ich einen Verweis auf System.Data.Entity hinzufügen, nicht auf das Design ...
Dean Kuga
4
Fügen Sie nicht die DESIGN-Referenz hinzu! Der einzige Grund, warum es funktioniert hat, ist, dass es eine Abhängigkeit von System.Data.Entity gibt, die die richtige Referenz ist, wie @DeanKuga sagte
Greg Ennis
9

Ich hatte Entity Framework 6.1.3, aktualisiert (nun, in NuGet stärker herabgestuft) auf 6.1.2. Hat funktioniert.

TJPrgmr
quelle
Ich habe das Downgrade durchgeführt und gearbeitet, ich habe einen alten Code geöffnet und das wars.
Juan
5

Sie müssen das Entity-Framework installieren, indem Sie mit der rechten Maustaste auf Ihre VS-Lösung klicken und auf NuGet-Paketlösung verwalten klicken und dort das Entity-Framework suchen. Nach der Installation wird das Problem behoben

Rajesh Kumar Swain
quelle
4

Ich hatte gerade den gleichen Fehler mit Visual Studio 2013 und EF6. Ich musste ein NewGet-gepacktes Entity Framework verwenden und habe die Arbeit perfekt gemacht

Cormac Hallinan
quelle
4

Ich werde meine Antwort hinzufügen, um alle Fälle abzudecken:

Meine Lösung bestand darin, EntityFramework von NuGet Package Manager zu deinstallieren, und dann wurde ich aufgefordert, Visual Studio neu zu starten, da die Deinstallation nicht abgeschlossen werden konnte.

Ich habe Visual Studio neu gestartet und EntityFramework neu installiert, dann war mein Problem gelöst.

Hoffe das hilft jemandem!

GigiSan
quelle
hmmm .. Deinstallation und Neuinstallation haben auch bei mir funktioniert .. !!
Irfaan
2

Meine Lösung war einfach! Ich hatte tatsächlich diesen Fehler, als ich ein Repo von einem SVN-Server auscheckte. Ich habe die folgenden Schritte unternommen, um den Fehler zu beheben

  1. Gereinigte Lösung
  2. Ging zum Nuget Package Manager und deinstallierte das Entity Framework.
  3. DataModel und seine CS-Komponenten wurden entfernt.
  4. Fahren Sie den VS herunter und öffnen Sie ihn erneut.
  5. Installiertes Entity Framework und neu erstelltes Entity-Modell.
  6. Überprüfen Sie, ob Dateien erforderlich sind. "In die Lösung einbeziehen". Es funktionierte wie ein Zauber
Ansar nisar Gill
quelle
2

Stellen Sie sicher, dass Sie das EntityFramework Nuget-Paket für Ihr Projekt installiert haben.

Aus der Antwort von @ TonyDing:

Klicken Sie im Visual Studio Solution Explorer mit der rechten Maustaste auf die Lösung. Klicken Sie auf Nuget-Pakete für Lösung verwalten und installieren Sie EntityFramework

Sobald es installiert ist, hatte ich immer noch den Fehler, habe dann aber eine Neuinstallation gemäß @ papergodzillas Kommentar durchgeführt:

Update-Paket-neu installieren

und es löste mein Problem

Führen Sie dies in der Package Manager-Konsole aus (Ansicht> Andere Fenster> Package Manager-Konsole).
Jetzt ist alles gut!

Beschützer eins
quelle
Hallo zusammen! In meinem Fall ist dies der Beitrag, der für mich funktioniert hat. In meiner Lösung hatte ich 5 Projekte, die nach dem Abrufen von unserem Repo alle durcheinander waren. Normalerweise werden beim erneuten Erstellen des Projekts die Pakete wiederhergestellt, aber es war nicht vorhanden, und ich hatte Dutzende fehlerhafter Referenzen und Hunderte von Fehlern. Nuget Package Manager sagte, dass die fehlenden Ressourcen bereits installiert waren, also öffnete ich die Konsole und führte den Befehl -reinstall aus, und jeder Fehler verschwand. Vielen Dank!
JRodd
1

versuchte neu zu installieren - kein Glück. Ich musste eine Tabelle in meinem Modell aktualisieren, bevor sie Entity finden konnte.

Joe
quelle
1

Es hat mir geholfen, ich habe EF deinstalliert, VS neu gestartet und 'using' hinzugefügt:

using System.Data.Entity;
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Infrastructure;
Roberto Gata
quelle
1

Ich musste mein DBModel aktualisieren. Das hat es gelöst

Wagen
quelle
1

Ich musste auf System.Data.DataSetExtensions verweisen, was völlig unlogisch erscheint

Erik Bergstedt
quelle
1

Ich installierte EntityFramework 6.2statt 6.3und es funktionierte.

Vielleicht ist es das .NetCoreApp v2.1oder .NETFramework v4.6.1.

Doug Moore
quelle
Nein, das liegt daran, dass der Bump 6.2 bis 6.3 Änderungen im Namespace enthielt. Sie müssen kein Downgrade durchführen, wenn Sie die Namespaces aktualisieren. Siehe die Dokumentation
gabe
0

Ich hatte die gleichen Fehler.

Ich habe System.Data.Entity.Repository aus Nuget-Paketen hinzugefügt und die Fehler verschwinden.

Hoffe es wird helfen!

FAHA
quelle
0

Ich bemerkte, dass die Framework-Entität im csproj einen Hinweispfad wie hatte

<HintPath>..\..\..\..\..\..\Users\{myusername}

Ich hatte dies in der Datei nuget.config:

 <config>
 <add key="repositoryPath" value="../lib" />
 </config>

a) Ich habe die obigen Zeilen entfernt, b) das Framework-Entity-Paket deinstalliert, c) dann die Lösung geschlossen und erneut geöffnet, d) das Framework neu installiert.

Es hat mein Problem behoben.

Antonin GAVREL
quelle
0

Wenn Sie einen Datenbank-First-Ansatz verwenden:

Versuchen Sie vor dem Deinstallieren / erneuten Installieren von Entity Framework zunächst, Ihrem Modell einfach eine weitere Tabelle / gespeicherte Prozedur hinzuzufügen (vorausgesetzt, es sind derzeit keine Zuordnungen vorhanden). Das hat das Problem für mich behoben. Wenn Sie die zugeordnete Ressource nicht benötigen, löschen Sie sie anschließend einfach aus dem Modell. Aber es sieht so aus, als hätte eine Kraftregeneration des edmx den Trick getan.

Jason Sultana
quelle
0

Ich habe festgestellt, dass die Hauptursache darin besteht, dass die Skripte manchmal nicht ausgeführt werden, wenn Sie die Nuget-Pakete über die Benutzeroberfläche installieren. Daher würde ich empfehlen, die Ausgabeansicht zu öffnen, während Sie dies tun. Wenn Sie das Fenster für die Lizenzvereinbarung bei der Installation von Nuget nicht sehen, gibt es eine bessere Änderung, dass Ihre IDE den Job nicht richtig macht. Deshalb hilft ein Neustart, eine Bereinigung und ein Wiederherstellen!

PS: Das Hinzufügen von Elementen unter System.Data.Entity. * Hilft, da das Nuget-Installationsprogramm dadurch ordnungsgemäß funktioniert. Aber das fand ich einen ziemlich unzuverlässigen Weg.

Beobachten Sie also einfach das Ausgabefenster. Am Ende MÜSSEN Sie so etwas wie eine erfolgreiche Nuget-Installationsmeldung sehen. In den meisten Fällen, in denen ein Problem auftritt, wird das Nuget-Installationsprogramm nicht einmal gestartet. Dann wird Ihr Neustart von IDE helfen.

Wenn alles gut läuft, nehmen Nuget Package Manager und IDE (ich habe oben den Begriff Installer verwendet) die Änderung vor, kompilieren die Lösung und halten Sie bei Laune! Aber wenn es nicht ein bisschen hilft, indem Sie IDE neu starten und das Ausgabefenster beobachten!

SydMK
quelle
0

Wenn Sie eine EF-Version mit mehr als 6.x verwenden, prüfen Sie, ob Sie das Entity Framework-Nuget-Paket in jedem Projekt Ihrer Lösung installiert haben. Möglicherweise haben Sie Ef installiert, jedoch nicht in dem bestimmten Projekt, an dem Sie arbeiten.

user12209639
quelle
0

Die meisten Antworten hier scheinen sich der Namensraumänderung zwischen EF 6.2 und 6.3 nicht bewusst zu sein .

Ich habe absichtlich ein Upgrade von EF 6.1 auf 6.3 durchgeführt, um auf .NET Standard 2.1 abzielen zu können. Ich habe jedoch versehentlich .NET Standard 2.0 für das neue Ziel in meiner Bibliothek verwendet und dann das erhalten The type or namespace name 'Entity' does not exist in the namespace 'System.Data'. Dieser Kommentar zum GH-Problem gab mir den Hinweis, den ich beheben musste. Ich habe mein lib-Ziel in .NET Standard 2.1 geändert und das Projekt kompiliert. Es waren keine Neuinstallationen, Deinstallationen oder Neustarts erforderlich.

gabe
quelle
-1

Ich habe gerade mein Entity-Framework in meinem Visual Studio 2013 über NugetPackage auf Version 6 aktualisiert und folgende Referenzen hinzugefügt:

System.Data.Entity,
System.Data.Entity.Design,
System.Data.Linq

Klicken Sie mit der rechten Maustaste auf Referenzen-> Referenzen in meinem Projekt hinzufügen. Löschen Sie nun mein zuvor erstelltes Entitätsmodell und erstellen Sie es erneut. Jetzt funktioniert es gut für mich.

Bikash Kumar
quelle