it-swarm.com.de

Wie aktualisiere ich mit Entity Framework nur eine Tabelle für ein Modell aus einer Datenbank?

Ich habe ein Modell aus DB mit Entity Framework generiert. Wenn ich eine Änderung in der Datenbank habe, aktualisiere ich das Modell von der Datenbank, um die Änderung im Modell zu erhalten. Dieses Update wird jedoch auf alle Entitäten (Tabellen) angewendet, die im Modell enthalten sind.

Jetzt füge ich eine neue Spalte in eine Tabelle Tab1 ein. Ich möchte das Modell nicht aus der Datenbank aktualisieren, da andere Änderungen nicht in das Modell aufgenommen werden sollen. Ich kann die neue Eigenschaft in model für entity Tab1 manuell hinzufügen. dann verursachte es einen Zuordnungsfehler.

Ich muss also Model.Store Aktualisieren, damit die Tabelle die neue Spalte enthält. Das heißt, ich möchte das Modell nur für Tab1 Aktualisieren.

Wie kann ich das machen?

31
KentZhou

Die EDMX-Datei ist eine XML-Datei, die aus drei verschiedenen Teilen besteht, aus denen sich das Ganze zusammensetzt. Wenn Sie mit der rechten Maustaste auf Ihre EDMX-Datei klicken und "Öffnen mit ... XML-Editor" auswählen, werden die drei folgenden Bereiche angezeigt:

  • <edmx:ConceptualModels>
  • <edmx:StorageModels>
  • <edmx:Mappings>

Diese Abschnitte können auf eigenes Risiko manuell bearbeitet werden! :-)
Auf diese Weise können Sie nur das ändern, was Sie brauchen.

Beachten Sie, dass es auch möglich ist, CSDL-, SSDL- und MSL-Dateien zu generieren, anstatt sie in die Binärdatei einzubetten, indem Sie die Eigenschaft "Meta Artifact Processing" Ihres Modells in "Copy to Output Directory" ändern.

Wenn Sie dies nicht manuell tun möchten, gibt es das Huagati DBML/EDMX-Tool , es ist kostenlos und Sie können es von huagati official site oder herunterladen from visual studio gallery , das ist ein Visual Studio-Plugin, mit dem Sie auswählen können, welche Änderungen vorgenommen werden müssen.

44
MaxSC

Ich benutze folgenden (bedingten) Trick. Dies ist nur möglich, wenn keine Tabelle von der Tabelle abhängt, die Sie aktualisieren möchten.

  1. Löschen Sie die Tabelle, die aktualisiert werden muss.
  2. Klicken Sie mit der rechten Maustaste auf Modell und wählen Sie "Modell aus Datenbank aktualisieren". Die Tabelle wird in der Registerkarte 'Hinzufügen' angezeigt. Wählen Sie diese Tabelle aus und aktualisieren Sie das Modell.

Vorsichtsmaßnahme: Wenn in anderen vorhandenen Tabellen Änderungen vorgenommen wurden, aktualisiert EF diese Änderungen ebenfalls.

6
Abhijeet Nagre