3 Gründe für die Verwendung von Code First Design mit Entity Framework
1) Weniger Ballast, weniger Blähungen
Verwendung einer bestehenden Datenbank zur Erstellung einer .edmx-Modelldatei und der Die Verwendung einer bestehenden Datenbank zur Generierung einer .edmx-Modelldatei und der zugehörigen Code-Modelle führt zu einem riesigen Haufen automatisch generierten Codes. Sie werden angefleht, diese generierten Dateien niemals anzurühren, damit Sie nicht etwas kaputt zu machen, oder Ihre Änderungen werden bei der nächsten Generation überschrieben. Der Kontext und der Initialisierer sind in diesem Durcheinander auch noch zusammengeklemmt. Wenn Sie Ihren generierten Modellen Funktionalität hinzufügen müssen, wie eine berechnete schreibgeschützte Eigenschaft, müssen Sie die Modellklasse erweitern. Dies ist am Ende eine Anforderung für fast jedes Modell und man hat am Ende mit einer Erweiterung für alles.
Mit Code first werden Ihre handcodierten Modelle zu Ihrer Datenbank. Die genauen Dateien, die Sie erstellen, erzeugen das Datenbankdesign. Es gibt keine zusätzlichen Dateien und es ist nicht notwendig, eine Klassen Erweiterung zu erstellen, wenn Sie Eigenschaften oder andere Dinge hinzufügen wollen, die die die die Datenbank nicht kennen muss. Sie können sie einfach in dieselbe derselben Klasse hinzufügen, solange Sie die korrekte Syntax einhalten. Sie können sogar eine Model.edmx-Datei erzeugen, um Ihren Code zu visualisieren, wenn Sie wollen.
2) Größere Kontrolle
Wenn Sie zuerst die DB verwenden, sind Sie der Gnade dessen ausgeliefert, was für Ihre Modelle für die Verwendung in Ihrer Anwendung. Gelegentlich ist die Namensgebung Konvention unerwünscht. Manchmal sind die Beziehungen und Assoziationen nicht ganz das, was Sie wollen. Andere Male sind nicht transiente Beziehungen mit trägem Laden Ihre API-Antworten in Mitleidenschaft ziehen.
Zwar gibt es fast immer eine Lösung für Probleme bei der Modellerstellung gibt es zwar fast immer eine Lösung für Probleme bei der Modellerstellung, aber wenn Sie zuerst den Code Kontrolle von Anfang an. Sie können jeden Aspekt sowohl von Ihrer Code-Modelle und Ihres Datenbankdesigns von Ihrem Geschäftsobjekts. Sie können Beziehungen, Einschränkungen und Assoziationen genau festlegen, und Assoziationen. Sie können gleichzeitig Grenzen für Eigenschaftszeichen und Datenbankspaltengrößen festlegen. Sie können angeben, welche verwandten Sammlungen eager geladen oder überhaupt nicht serialisiert werden sollen. Kurz gesagt, Sie sind verantwortlich für mehr Dinge, aber Sie haben die volle Kontrolle über Ihre Anwendung Entwurf.
3) Datenbank-Versionskontrolle
Das ist eine große Sache. Die Versionierung von Datenbanken ist schwierig, aber mit Code first und "Code first"-Migrationen ist es viel effektiver. Da Ihr Datenbankschema vollständig auf Ihren Code-Modellen basiert, tragen Sie durch die Versionskontrolle Versionskontrolle Ihres Quellcodes helfen Sie bei der Versionierung Ihrer Datenbank. Sie sind verantwortlich für die Kontrolle der Kontextinitialisierung, die Sie können z. B. feste Geschäftsdaten einfügen. Sie sind auch für die Erstellung von Code-First-Migrationen verantwortlich.
Wenn Sie Migrationen zum ersten Mal aktivieren, werden eine Konfigurationsklasse und eine erste Migration erzeugt. Die anfängliche Migration ist Ihr aktuelles Schema oder Ihr Basisschema v1.0. Von diesem Zeitpunkt an werden Sie Migrationen hinzufügen die mit einem Zeitstempel versehen und mit einem Deskriptor versehen werden, um die Ordnung der Versionen zu helfen. Wenn Sie add-migration über den Paketmanager aufrufen Manager aufrufen, wird eine neue Migrationsdatei erzeugt, die alles enthält die sich in Ihrem Codemodell geändert haben, automatisch in einer UP() und DOWN()-Funktion. Die UP-Funktion wendet die Änderungen auf die Datenbank an, die DOWN-Funktion entfernt dieselben Änderungen für den Fall, dass Sie einen Rollback. Darüber hinaus können Sie diese Migrationsdateien bearbeiten und Folgendes hinzufügen zusätzliche Änderungen wie neue Ansichten, Indizes, gespeicherte Prozeduren und was auch immer sonst. Sie werden so zu einem echten Versionierungssystem für Ihr Datenbankschema.
12 Stimmen
Mit Entity Framework 7 wird EDMX abgeschafft: msdn.microsoft.com/de-us/magazine/dn890367.aspx
6 Stimmen
@CADbloke Entity Framework 7 ist jetzt Entity Framework Core 1.0
6 Stimmen
Zu allen anderen Browsern, es sei denn, Sie haben eine Vorliebe für 7000 lange XML-Dateien und das Lösen von Merge-Konflikten in den vorgenannten, zuerst den Code eingeben und ersparen Sie sich Kopfschmerzen
3 Stimmen
Ein guter Bericht vom Januar 2015 über die drei Ansätze findet sich unter roland.kierkels.net/c-asp-net/
5 Stimmen
Nahezu jede Antwort, die gegeben wird, ist "Ich denke" ...die absolute Definition von "primär meinungsbasiert".