Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein EF-Modell speichert die Details zur Zuordnung von Anwendungsklassen und Eigenschaften zu Datenbanktabellen und -spalten. Es gibt zwei Hauptmethoden zum Erstellen eines EF-Modells:
Verwenden von Code First: Der Entwickler schreibt Code, um das Modell anzugeben. EF generiert die Modelle und Zuordnungen zur Laufzeit basierend auf Entitätsklassen und zusätzlicher Modellkonfiguration, die vom Entwickler bereitgestellt wird.
Verwenden des EF-Designers: Der Entwickler zeichnet Felder und Linien, um das Modell mithilfe des EF-Designers anzugeben. Das resultierende Modell wird als XML in einer Datei mit der Erweiterung EDMX gespeichert. Die Domänenobjekte der Anwendung werden in der Regel automatisch aus dem konzeptionellen Modell generiert.
EF-Workflows
Beide Ansätze können verwendet werden, um auf eine vorhandene Datenbank zu abzielen oder eine neue Datenbank zu erstellen, was zu 4 verschiedenen Workflows führt. Erfahren Sie, welche für Sie am besten geeignet ist:
| Ich möchte nur Code schreiben... | Ich möchte einen Designer verwenden... | |
|---|---|---|
| Ich erschaffe eine neue Datenbank | Verwenden Sie Code First , um Ihr Modell im Code zu definieren und dann eine Datenbank zu generieren. | Verwenden Sie "Modell zuerst ", um Ihr Modell mithilfe von Feldern und Linien zu definieren und dann eine Datenbank zu generieren. |
| Ich muss auf eine vorhandene Datenbank zugreifen | Verwenden Sie Code First , um ein codebasiertes Modell zu erstellen, das einer vorhandenen Datenbank zugeordnet ist. | Verwenden Sie "Datenbank zuerst ", um ein Feld- und Linienmodell zu erstellen, das einer vorhandenen Datenbank zugeordnet ist. |
Schauen Sie sich das Video an: Welchen EF-Workflow sollte ich verwenden?
In diesem kurzen Video werden die Unterschiede erklärt und wie Sie das für Sie Richtige finden.
Präsentiert von: Rowan Miller
Wenn Sie sich auch nach dem Ansehen des Videos nicht sicher sind, ob Sie den EF Designer oder Code First verwenden möchten, dann lernen Sie beides!
Ein Blick unter der Haube
Unabhängig davon, ob Sie Code First oder EF Designer verwenden, verfügt ein EF-Modell immer über mehrere Komponenten:
Die Domänenobjekte oder Entitätstypen der Anwendung selbst. Dies wird häufig als Objektebene bezeichnet.
Ein konzeptionelles Modell, das aus domänenspezifischen Entitätstypen und -beziehungen besteht, die mithilfe des Entitätsdatenmodells beschrieben werden. Diese Ebene wird häufig mit dem Buchstaben "C" für konzeptuell bezeichnet.
Ein Speichermodell, das Tabellen, Spalten und Beziehungen darstellt, wie in der Datenbank definiert. Diese Ebene wird häufig mit dem späteren "S" für den Speicher bezeichnet.
Eine Zuordnung zwischen dem konzeptionellen Modell und dem Datenbankschema. Diese Zuordnung wird häufig als "C-S"-Zuordnung bezeichnet.
Das Zuordnungsmodul von EF nutzt die Zuordnung "C-S" zum Transformieren von Vorgängen gegen Entitäten , z. B. Erstellen, Lesen, Aktualisieren und Löschen, in gleichwertige Vorgänge für Tabellen in der Datenbank.
Die Zuordnung zwischen dem konzeptionellen Modell und den Objekten der Anwendung wird häufig als "O-C"-Zuordnung bezeichnet. Im Vergleich zur "C-S"-Zuordnung ist die "O-C"-Zuordnung implizit und 1:1: Entitäten, Eigenschaften und Beziehungen, die im konzeptionellen Modell definiert sind, müssen mit den Shapes und Typen der .NET-Objekte übereinstimmen. Von EF4 und darüber hinaus kann die Objektebene aus einfachen Objekten mit Eigenschaften ohne Abhängigkeiten von EF bestehen. Diese werden in der Regel als Plain-Old CLR Objects (POCO) bezeichnet, und die Zuordnung von Typen und Eigenschaften wird auf der Grundlage von Namensabgleichskonventionen durchgeführt. Zuvor gab es in EF 3.5 spezifische Einschränkungen für die Objektebene, z. B. Entitäten, die von der EntityObject-Klasse abgeleitet werden müssen und EF-Attribute zur Implementierung der "O-C"-Zuordnung tragen müssen.