wake-up-neo.com

Nach der Aktualisierung des Entity Framework-Modells werden in Visual Studio keine Änderungen angezeigt

Wenn ich Änderungen an meinem EF 5.0-Modell vornehme, scheint VS die Änderungen nicht zu sehen. Ich habe versucht, eine neue Tabelle hinzuzufügen, die im Modell gut angezeigt wird. Wenn ich jedoch versuche, sie irgendwo zu verwenden, wird die Tabelle nicht in Intellisense angezeigt und ich kann sie nicht verwenden.

Ich habe auch versucht, Datentypen einer Spalte zu ändern, was sich beim Anzeigen der .edmx-Modelldatei wieder in Ordnung zeigt, aber Visual Studio gibt mir immer noch Compiler-Fehler in diesem Feld, da ich versuche, den falschen Datentyp zuzuweisen.

Wenn ich das EDMX vollständig lösche und neu erstellen, funktionieren die Änderungen einwandfrei. Es ist jedoch mühsam, jedes Mal aus der Datenbank zu regenerieren, wenn ich nur in der Lage sein sollte, "Modell aus Datenbank aktualisieren" und neu zu erstellen.

Ich hatte diese Probleme noch nie mit EF. Kennt jemand die Ursache oder die Behebung dieses Problems?

Vielen Dank.

45
Kyle

Wenn dies der Fehler mit der edmx-Datei in einem Ordner ist, ist sie jetzt behoben. Laden Sie VS 2012 Update 1 herunter und installieren Sie es. Sie können es von folgender Website herunterladen: http://www.Microsoft.com/visualstudio/deu/downloads# d-visual-studio-2012-update

16
Pawel

Erstellen Sie zuerst Ihr Projekt und wenn es erfolgreich war, richten Sie die "model.tt" in den Kontext. dann benutzerdefiniertes Tool ausführen . Es wird es beheben. 

Erstellen Sie erneut Ihr Projekt, und zeigen Sie auf "model.context.tt" Ausführen eines benutzerdefinierten Tools. Es werden DbSet -Listen aktualisiert.

57
Mahdi Shahbazi

Dies ist anscheinend ein Fehler im Entity Framework, der dazu führt, dass das Modell nicht aktualisiert wird, wenn sich die Edmx-Datei in einem Ordner befindet. Die derzeit verfügbaren Problemumgehungen sind:

  1. Installieren Sie VS 2012 Update 1, um den Fehler zu beheben.
  2. Wenn Sie Update 1 nicht installieren können, klicken Sie mit der rechten Maustaste auf die T4-Vorlagendatei model.tt und klicken Sie auf Custom tool ausführen. Dadurch werden die Klassen für Sie aktualisiert.

Hoffe, dass jemand da draußen hilft. 

Link: http://thedatafarm.com/blog/data-access/watch-out-for-vs2012-edmx-code-generation-special-case/

14
Ghlouw

Ich hatte dieses Problem jedoch auch, wenn ich mit der rechten Maustaste auf die model.tt-Datei klickte und "Custom tool" ausführte, machte es für mich irgendwie keinen Unterschied, aber ein Kommentar auf der von Ghlouw verlinkten Seite erwähnte den Menüpunkt "BUILD > Alle T4-Vorlagen transformieren. " was hat es für mich getan

10
Kristian

Sie sollten eine <XXX>Model.tt-Datei haben, die die T4-Vorlage ist, die Ihre Modellklassen generiert.

Wenn es sich in einem anderen Projekt befindet, wird es beim Speichern der edmx-Datei nicht aktualisiert.

Versuchen Sie es trotzdem mit der rechten Maustaste im Projektmappen-Explorer und wählen Sie Run Custom Tool.

7
Nicholas Butler

Klicken Sie mit der rechten Maustaste auf die .tt-Datei und wählen Sie "Benutzerdefiniertes Tool ausführen" aus. Diese sollte aktualisiert werden: see image

5
Tshilidzi Mudau

Ich habe nach dieser Antwort gesucht, weil ich in VS2013 eine ähnliche Situation hatte. In meinem Fall habe ich festgestellt, dass ein einfaches "Clean Solution" alle alten Definitionen gelöscht hat.

3
woodvi

Dieses Problem ist auch aufgetreten, wenn keine der Klassen unter der Datei model.tt generiert wurde. In meinem Fall lag es an Problemen, wie ich die Datenbank in SQL2012 erstellt hatte. Ich hatte eine Spalte in einer Tabelle auf null gesetzt, die auch ein Fremdschlüssel war. Obwohl ich denke, Sie sollten dies tun können, war dies ein Problem in EF5.

Sobald dies gelöscht wurde und das Diagramm aus der Datenbank aktualisiert wurde, wurden sie erneut angezeigt.

EF5 VS2013

0
CF5

Arbeiten Sie in einem N-Tiered-Projekt? Wenn ja, versuchen Sie, Ihre Datenschicht neu zu erstellen (oder wo auch immer Ihre EDMX-Datei gespeichert ist), bevor Sie sie verwenden.

0
Middas