2014-09-25 6 views
5

Beim Erstellen eines neuen Entity-Datenmodells aus einer vorhandenen Datenbank mit dem Code zuerst aus der Datenbank kann direkt angegeben werden, welche Tabellen in das Modell aufgenommen werden sollen. Eine Teilmenge (oder alle) Tabellen kann in den Visual Studio-Assistenten ausgewählt werden:Wie fügen Sie einem vorhandenen Code zuerst Tabellen aus dem EF-Modell der Datenbank hinzu?

EF Data Model Wizard

In diesem Beispiel Category und Product Klassen werden zusammen mit der DbContext abgeleiteten Kontextklasse erstellt werden. Wenn ich später dem gleichen Modell weitere Tabellen hinzufügen möchte, gibt es eine einfache Möglichkeit, sie hinzuzufügen, d. H. Ohne die Klassen selbst manuell erstellen zu müssen?

z. zunächst wird meine DbContext Klasse enthalten:

public virtual DbSet<Category> Categories { get; set; } 
public virtual DbSet<Product> Products { get; set; } 

Jetzt nehme ich auch Employee Tabelle enthalten sein sollen, so dass die DbContext Klasse wird aktualisiert:

public virtual DbSet<Category> Categories { get; set; } 
public virtual DbSet<Product> Products { get; set; } 
public virtual DbSet<Employee> Employees { get; set; } 

VS Kontextmenüs scheinen nicht zu bieten diese Option, aber vielleicht fehlt mir etwas. Gibt es eine Möglichkeit, den Assistenten zurückzubringen, damit ich zusätzliche Tabellen auswählen kann?

Eine Lösung ist ein separates leeres Projekt, wo Sie einfach ein neues Modell erstellen und dann neue Klassen kopieren/einfügen, aber ich bin gespannt, ob es einen schnelleren Weg gibt.

Antwort

2

Nein, es gibt keine Möglichkeit, das zu tun. Sie müssen den Assistenten erneut ausführen und die gewünschten Klassen generieren.

+0

Vielen Dank. Wissen Sie vielleicht, ob es einen bestimmten technischen oder gestalterischen Grund dafür gibt? Es scheint mir, dass die Implementierung von etwas so einfach sein sollte, also ist es irgendwie seltsam, dass es von VS fehlt. – w128

+0

Ich denke, das Team kam einfach nie dazu. Was ist das Problem, vor dem Sie stehen, wenn Sie die Dateien einfach neu generieren? Ich sehe keinen großen Unterschied in diesem Workflow und was Sie verlangen ... – ErikEJ

+0

Das Problem (das ich ursprünglich nicht erwähnt habe) ist, dass ich einige der Standardnamen umbenenne (zB kann der Tabellenname in meinem speziellen Fall customer_data sein während ich möchte, dass die Klasse CustomerData genannt wird und "Table" -Attribute zur Verfügung stellt, dh ich den generierten Code leicht umgestalte und die gesamte Sache neu erstelle, überschreibt alles. – w128

Verwandte Themen