2012-04-01 25 views
0

Ich versuche herauszufinden, was der beste Weg für Entity Framework Code-Generierung mit einer "Datenbank zuerst" -Ansatz wäre. Ich möchte, dass die vollständige Hauptbeschreibung des Modells das tatsächliche Datenbankschema mit Anmerkungen ist, die in der Datenbank in Tabellen oder erweiterten Eigenschaften gespeichert sind. Kein Interesse an einem Modell oder Code-Ansatz. Nicht gegen das Schreiben von benutzerdefiniertem Code zum Implementieren, wenn dies die höchste Qualitätslösung ergibt. Hier einige Ideen:Entity Framework Code Generierung

(1) Erzeuge EDMX aus der Datenbank. Verwenden Sie benutzerdefinierten Code, um dem EDMX Anmerkungen bezüglich Eindeutigkeit und anderer Einschränkungen hinzuzufügen, die derzeit nicht in EF integriert sind. Verwenden Sie T4-Vorlagen, um Code aus dem EDMX zu generieren.

(2) Schreiben Sie ein benutzerdefiniertes Tool, das "Code First" -Klassen aus der Datenbank generiert. Keine EDMX-Dateien in der Lösung.

(3) Noch etwas?

Es scheint, dass # 1 tiefere Kenntnisse von EF und mehr tatsächliche Arbeit als # 2 erfordert, denen ich jetzt entgegenstehe, wenn es signifikante Vorteile gibt.

Irgendwelche Ratschläge?

+0

Sie wissen, dass Sie "Code zuerst" tun können und es das Schema nicht erzeugen lassen, nicht wahr? Sie müssen lediglich die Klasse erstellen, die dem DB-Schema entspricht, obwohl Sie an beiden Stellen Änderungen vornehmen müssen. – tvanfosson

+0

@Ivan, in Bezug auf "Alles, was Sie tun müssen, ist die Klasse erstellen, um das DB-Schema zu entsprechen", ist die Frage, ob dieser Code direkt generieren oder eine EDMX-Datei in der Mitte zu setzen. –

+0

Ich mag das Steuerelement, das Code mir zuerst über die Form der Klasse gibt und finde, dass Code zuerst viel einfacher testbar ist als der automatisch generierte Code vom Designer. In der Tat würde ich EF nicht verwenden, bis Code zuerst versendet wurde; Linq2SQL war besser IMO mit dem Designer. Jetzt verwende ich zuerst EF Code als meine erste Wahl mit MSSQL. Unglücklicherweise finde ich keine dieser Methoden ausreichend, um das gesamte Schema in der IDE (Designer oder Code) zu entwerfen, und verwende in der Regel DB-first mit einem Code-First-Model. – tvanfosson

Antwort

0

Nun, nichts ist einfacher als nur die Tabellen vom Server Explorer auf die edmx Designeroberfläche zu ziehen. So mache ich es. Ich mache keine Anpassungen an das Modell, also kann ich einfach Teile davon löschen und neu erstellen.

0

Sie können das Modell mit EF aus Ihrer Datenbank importieren. Klicken Sie mit der rechten Maustaste auf den EF-Designer und wählen Sie die Option "Modell aus Datenbank aktualisieren".

Wenn Sie ein wenig mehr wollen, können Sie versuchen http://radarc.net. Es ist ein Tool zur Code-Generierung, das Scaffolding und CRUDs erstellt. Es verwendet T4-Vorlagen und Code zuerst, damit Sie die Art und Weise, wie Code generiert wird, anpassen können.

Verwandte Themen