Nach dem Upgrade unseres Projekts von Entity Framework 5 auf Entity Framework 6 (obwohl NuGets Update-Funktion) erhalte ich den folgenden Fehler in meiner generierten Entities-Klasse:
Fehler 1 Der Typ- oder Namespace-Name "Objekte" ist im Namespace "System.Data" nicht vorhanden.
(Fehlt Ihnen eine Referenz der Versammlung?)
Ich verstehe, dass dies daran liegt, dass sich der Namespace geändert hat und ich den Fehler manuell beheben kann, indem ich meine Importe von: using System.Data.Objects;
Und using System.Data.Objects.DataClasses;
Nach: using System.Data.Entity.Core.Objects;
Ändere.
Da die Datei jedoch generiert wird, muss ich diesen Fix nach jedem Update model from Database
Erneut anwenden. Muss noch etwas geändert werden, damit EF das Modell ohne diesen Fehler generiert.
Ich denke dein Problem ist, dass deine T4 Templates, die die Entitties und den Kontext erzeugen, noch in EF Version 5 sind.
Zuerst müssen Sie die aktuellen Codegenerierungselemente löschen, die sich im Code hinter dem Modell befinden, nämlich <Modelname>.Context.tt
Und <Modelname>.tt
. Anschließend fügen Sie einen neuen EF-Codegenerator der Version 6 mit Right click in the model designer-> Add Code Generation Item ... -> EF 6.x DbContext Generator
.
Dies ist meine Erfahrung mit dem erfolgreichen Upgrade von Entity Framework v5 auf v6 für:
Akronyme:
Checkliste:
using System.Data.EntityClient;
, eine EF5-Referenz.using System.Data.Entity.Core.EntityClient;
das ist das richtige für EF6.Immer noch stecken? Bei dieser Checkliste handelt es sich um ein Community-Wiki. Sie können diese Checkliste auch bearbeiten, um anderen unglücklichen Seelen zu helfen, die immer noch mit dem Kopf gegen die Wand schlagen, die eine EF6-Konfiguration haben kann.
Bitte prüfen Sie andere Optionen, bevor Sie EF in Betracht ziehen. Es ist 100-mal langsamer als andere Optionen, es ist viel zu kompliziert für das, was es liefert, die Benutzeroberfläche der Entität ist voller Fehler und weist merkwürdige Usability-Probleme auf. Wir werden unseren gesamten EF6-Code herausreißen und durch etwas ersetzen müssen, das es braucht In weniger als 5 Minuten können Sie in Dapper eine Abfrage ausführen, die 5 Sekunden dauert.