Entity-Framework-Aktualisierungsmodell aus Datenbank, das keine cs-Klasse für neu hinzugefügte Tabelle in tt-Klasse generiert

7

Ich verwende Entity Framework 5 mit Visual Studio 2012.

Ich habe ein bestehendes Modell. Jetzt möchte ich dem vorhandenen Modell eine neue Tabelle hinzufügen. Dafür habe ich die edxm-Datei geöffnet und mit Rechtsklick habe ich das Modell erfolgreich aktualisiert.

Jetzt, in "Model Browser" unter "EntityTypes" für das Modell, kann ich sehen, dass der Tabellenname existiert. Aber im Projektmappen-Explorer wird nicht die automatisch generierte CS-Datei für die Tabelle angezeigt, die ich neu unter der .tt-Datei hinzugefügt habe.

Ich habe versucht, "Custom Tool ausführen", aber es hat die Klasse nicht generiert. Habe auch Visual Studio neu gestartet aber das Ergebnis ist das gleiche.

Kann mir jemand helfen?

Danke

    
Dev 21.11.2013, 12:30
quelle

3 Antworten

14

Probleme

  1. Wenn Sie den Tabellennamen tblEmployee in der Datenbank haben Nach dem Hinzufügen des 'Entity Data Model' haben Sie Entity tblEmployee zu Employee in der EDMX-Datei geändert und dann Save and Build. Klassen für geänderten Namen werden jedoch nicht automatisch in der Datei Model1.tt generiert.
  2. Wenn " Modell von Datenbank aktualisieren " zum Hinzufügen einer neuen Tabelle verwendet wird, tritt das Problem auf.
  3. Auch nicht verfügbar in MVC Beim Erstellen von View mit Model Class / Erstellen von Controller mit Aktionen mit EntityFramework

Dieses Problem ist für die frühe Version von VS2012. Dieses Problem ist in der aktualisierten Version von VS2012 gelöst.

Lösung

wir haben eine Lösung dafür mit der frühen Version von VS2012 & amp; EF 5.0

Folgen Sie den Schritten

  1. Klicken Sie mit der rechten Maustaste auf "Model1.tt" und wählen Sie "Custom Tool ausführen". save und Build Now, siehe Klassen werden generiert.
  2. Klicken Sie mit der rechten Maustaste auf Model1.Context.tt und wählen Sie 'Run Custom Tool'. save und Build Now siehe Eigenschaft IN Die Context-Klasse wird wie

    generiert %Vor%

Lösung speichern und erstellen

%Vor%

Das hat für mich funktioniert. Beachten Sie jedoch, dass EF 6.0 beim Erstellen von Controllern und Anzeigen mit Entityframework in MVC mit dieser Version von VS2012 kein Scaffolding ausführen kann. Sie müssen EF 5.0 verwenden oder VS2012 mit einem neuen Update aktualisieren.

    
Dnyneshwar 20.06.2015, 19:06
quelle
4

In diesem Fall lösche ich einfach das aufregende Modell und klicke dann auf Hinzufügen und füge einfach deine neu hinzugefügte Tabelle hinzu!

Wenn dies der Fehler mit der edmx-Datei ist, der sich in einem Ordner befindet, ist er nun behoben - lade VS 2012 Update 1 herunter und installiere ihn. Du kannst ihn von:

bekommen

Ссылка

    
Neel 21.11.2013 12:35
quelle
4

Ich habe es selbst gelöst.

Das Problem lag in den Dateien Dateiname .Context.tt und Dateiname .tt.

Der Name der Diagrammdatei für die Variable const string inputFile , die in beiden Dateien angegeben wurde, unterscheidet sich von der vorhandenen Diagrammdatei ( .edmx -Datei). Es wurde mit dem vorhandenen Diagrammdateinamen aktualisiert und dann das Modell aus der Datenbank aktualisiert. Funktioniert jetzt gut.

    
Dev 22.11.2013 10:17
quelle