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"/>

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


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


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!


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.


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


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


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!


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

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!


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.


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;

1

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


1

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


1

Ich installierte EntityFramework 6.2statt 6.3und es funktionierte.

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


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!


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.


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.


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!


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.


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.


-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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.