Zweck der EF-6.x DbContext-Generator option beim hinzufügen eines neuen Daten-Element in Visual Studio
Ich habe eine web-app, die ich erstellt unter Verwendung von LINQ to SQL und ich bin auf der Suche, um es zu aktualisieren, um LINQ to Entity Framework. Ich habe mir einige tutorials und was ich gelernt habe ist, dass im Grunde in der Datenbank-first-Szenario, erstellen Sie eine ADO.NET Entity Data Model. Und von dort aus, wählen Sie, welche Tabellen für das Modell (sehr ähnlich wie LINQ to SQL).
Innerhalb der Neues Element Hinzufügen dialog, sehe ich, dass es eine andere option, die erstellt eine EF 6.x DbContext-Generator:
Was ist der Zweck der EF 6.x DbContext-Generator im Vergleich zu ADO.NET Entity Data Model (erste option im dialog)? Und, was ist EF 6.x DbContext-Generator für? Es scheint, um eine Textdatei zu erstellen. Was soll ich tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie bereits eine Datenbank haben, die erste option ist besser, da der Ansatz sehr ähnlich zu der von Ihnen arbeiten bereits in LinqToSQL.
Die .EDMX-Datei können auch liefern Sie eine grafische Darstellung Ihrer Datenbank, und Sie müssen nicht um nichts anderes kümmern.
Den DbContext-Generator ersetzt die ObjectContext mit viel einfacheren und kürzeren code zu verbinden Entity-Objekte zu den Objekten der Datenbank. Einer einzigen Datenbank-Tabelle mit 30 Feldern ist vertreten durch über 800 Zeilen code als eine ObjectContext-aber über 40 Zeilen einfach zu verstehen von code als eine Klasse DbContext und erzeugt durch die DbContextGenerator.
Den DbContext-Generator erzeugt zwei Dateien -
erstellen der DbContext mit Verbindungszeichenfolge details und ein DbSet für jede Tabelle.
erstellen der Klasse für jede Tabelle. Wenn Sie öffnen Sie diese .tt-Ordner sehen Sie die DbContext und Klassen generiert. Sie brauchen nicht, etwas zu tun mit dieser Klassen - Sie finden Sie in der Controller-Aktionen.
Einer Komplettlösung ist verfügbar bei http://msdn.microsoft.com/en-US/data/jj206878
Ich denke, dies ist der wesentliche Artikel über EntityFramework und Generatoren:
MSDN-Artikel
Hier ist die Einleitung zu dem Artikel:
In der Regel diese Generatoren werden nicht konvertiert, Ihre db-Modul aus LinqToSQL auf EntityFramework.
Wenn Sie die komplette Datenbank (angenommen, Sie haben es als Modul basiert auf Linq2SQL), würde ich empfehlen Sie zu verwenden ADO.NET (Entity Data Model hinzufügen neuer Gegenstand: EDMX), und wählen Sie "aus Datenbank Generieren "' (VS-Assistenten nach dem hinzufügen).
Gibt es zwei Möglichkeiten, das zu tun DB Erste, beinhaltet eine EDMX-Datei, die andere umfasst das reverse engineering von code first POCO ist.
Wenn Sie eine EDMX-Datei, die Sie installieren Generatoren, die verwendet werden, um die Erstellung Ihrer Unternehmen, und es gibt mehrere Optionen. Man ist DbContext, der andere ist EntityObject generator, welche Objekte generiert, basierend auf den ObjectContext.
Ersten option erstellen Sie eine Modell-Erste Datei, die für die Arbeit mit EF (alle Versionen), die, wenn Sie wählen, die Sie aktualisieren können (oder konstruieren) Sie Ihre EF-Modell aus einer bestehenden Datenbank, während, wenn wählen Sie die zweite option, Sie würde gegeben werden, die Einrichtungen zu generieren, entsprach Dateien zum erstellen einer Lösung für die Arbeit mit Code-First-EF.
Nach meinen Erfahrungen, die zweite Wahl ist, nicht eine würdige option, und wenn Sie sich entscheiden, arbeiten mit der Code-First EF, es wird dringend empfohlen, öffnen Sie eine infizierte Datei, und schreiben Sie Ihre codes, Ihre eigene frei und genießen Sie maximale Flexibilität mit Code-First und Ihrer Konventionen.