2016-04-25 5 views
0

Wir haben eine Datenbibliothek, die sie mit CodeFirst erstellt haben. Jetzt habe ich einen SQL-Befehl ausgeführt und eine neue Tabelle zu dieser Datenbank hinzugefügt. Aber jetzt möchte ich auch seine generierte Objektklasse, seine DBContext-Definitionen usw. im ersten Code des Codes sehen, damit ich sie in meinen LINQ-Abfragen verwenden kann. Also, was ich tat, war folgende Nummer 3 Verfahren von dieser MSDN-Seite: https://msdn.microsoft.com/en-us/library/jj200620.aspxEine neue Tabelle in den DBContext einfügen, die mit CodeFirst erstellt wurde

Aber es hat es nicht richtig machen. Zum Beispiel hat es keine Definition für diese neue Tabelle DBContext.cs Datei hinzufügen, zum Beispiel alle meine anderen Tabellen, die dort verwendet werden, definiert werden wie folgt aus:

DbSet<Zipcode> Zipcodes { get; set; } 

Aber es hat noch nichts für mich gegeben.

Was ist der richtige Weg, dies zu tun?

Antwort

0

Ich bin mir nicht bewusst, wie Sie einfach eine neue Tabelle hinzufügen und sie ohne manuelle Arbeit mit Ihrem vorhandenen Modell "plug-n-play" ausführen können. Die beiden Optionen, die ich kenne, sind:

  1. Erstellen Sie das Modell mit Code zunächst von DB und geben Sie Ihre zusätzlichen Tabelle
  2. manuell die Tabelle als eine Klasse erstellen und die DbSet und Einheit in der OnModelCreating Methode in Ihrem Modell hinzufügen
+0

Ich begann tatsächlich mit Nummer eins oben. Du meinst, ich sollte die DbSet-Definition noch manuell zu meinem Kontext hinzufügen? – Travolta

+0

Nein, Sie müssten den DBSet in diesem Fall nicht manuell hinzufügen. Löschen Sie bei der Route # 1 zuerst das ursprüngliche Modell und alle zugehörigen Klassen. Dann erstellen Sie ein neues Modell (mit dem gleichen Namen, wenn Sie als Original wollen) mit allen Tabellen, die Sie möchten, wie Sie es zum ersten Mal beim Erstellen des Modells getan haben. Keine manuelle Arbeit zum Hinzufügen von DBSets usw., wenn Sie das ursprüngliche Modell löschen und das neue Modell mit allen gewünschten Tabellen hinzufügen. –

+0

ok Wie lösche ich das ursprüngliche Modell? Diese Sache, die ich am meisten als POCO-Klassen sehe, ist, dass ihr Name der Name der Tabelle in DB ist. – Travolta

0

Code First from Database funktioniert nur, wenn Sie bereits eine Datenbank haben. Wenn Sie eine neue Tabelle hinzufügen möchten, müssen Sie Code-First verwenden (allein), dh: Fügen Sie die Entität Postleitzahl dem Modell, DbSet dem DbContext und danach beim Kompilieren hinzu erzeugt de Tabelle in der Datenbank.

Verwandte Themen