Entity Framework - Modell erster Ansatz
In diesem Kapitel erfahren Sie, wie Sie im Designer ein Entitätsdatenmodell mithilfe des als Model First bezeichneten Workflows erstellen.
Model First eignet sich hervorragend, wenn Sie ein neues Projekt starten, bei dem die Datenbank noch nicht einmal vorhanden ist.
Das Modell wird in einer EDMX-Datei gespeichert und kann im Entity Framework Designer angezeigt und bearbeitet werden.
In Model First definieren Sie Ihr Modell in einem Entity Framework-Designer und generieren dann SQL, das ein Datenbankschema erstellt, das Ihrem Modell entspricht. Anschließend führen Sie SQL aus, um das Schema in Ihrer Datenbank zu erstellen.
Die Klassen, mit denen Sie in Ihrer Anwendung interagieren, werden automatisch aus der EDMX-Datei generiert.
Im Folgenden finden Sie ein einfaches Beispiel für die Erstellung eines neuen Konsolenprojekts mithilfe des Model First-Ansatzes.
Step 1 - Öffnen Sie Visual Studio und wählen Sie Datei → Neu → Projekt
Step 2 - Wählen Sie im linken Bereich Installiert → Vorlagen → Visual C # → Windows und dann im mittleren Bereich Konsolenanwendung.
Step 3 - Geben Sie EFModelFirstDemo in das Feld Name ein.
Step 4 - Um ein Modell zu erstellen, klicken Sie zunächst im Solution Explorer mit der rechten Maustaste auf Ihr Konsolenprojekt und wählen Sie Hinzufügen → Neue Elemente…
Der folgende Dialog wird geöffnet.
Step 5 - Wählen Sie im mittleren Bereich ADO.NET-Entitätsdatenmodell aus und geben Sie den Namen ModelFirstDemoDB in das Feld Name ein.
Step 6 - Klicken Sie auf die Schaltfläche Hinzufügen, um das Dialogfeld Assistent für Entitätsdatenmodelle zu öffnen.
Step 7- Wählen Sie Leeres EF Designer-Modell und klicken Sie auf Weiter. Der Entity Framework Designer wird mit einem leeren Modell geöffnet. Jetzt können wir dem Modell Entitäten, Eigenschaften und Assoziationen hinzufügen.
Step 8- Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche und wählen Sie Eigenschaften. Ändern Sie im Eigenschaftenfenster den Namen des Entitätscontainers in ModelFirstDemoDBContext.
Step 9 - Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche und wählen Sie Neu hinzufügen → Entität…
Das Dialogfeld "Entität hinzufügen" wird wie in der folgenden Abbildung gezeigt geöffnet.
Step 10 - Geben Sie Student als Entitätsname und Student ID als Eigenschaftsname ein und klicken Sie auf OK.
Step 11 - Klicken Sie mit der rechten Maustaste auf die neue Entität auf der Entwurfsoberfläche und wählen Sie Neu hinzufügen → Skalareigenschaft. Geben Sie als Namen der Eigenschaft Name ein.
Step 12 - Geben Sie FirstName ein und fügen Sie zwei weitere skalare Eigenschaften wie LastName und EnrollmentDate hinzu.
Step 13 - Fügen Sie zwei weitere Entitätskurse und die Registrierung hinzu, indem Sie alle oben genannten Schritte ausführen, und fügen Sie einige Skalareigenschaften hinzu, wie in den folgenden Schritten gezeigt.
Step 14 - Wir haben drei Entitäten in Visual Designer. Fügen wir eine Assoziation oder Beziehung zwischen ihnen hinzu.
Step 15 - Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche und wählen Sie Neu hinzufügen → Zuordnung….
Step 16 - Machen Sie ein Ende der Beziehung zu Student mit einer Vielzahl von einem und das andere Endpunkt zu Einschreibung mit einer Vielzahl von vielen.
Step 17 - Dies bedeutet, dass ein Schüler viele Einschreibungen hat und die Einschreibung einem Schüler gehört.
Step 18 - Stellen Sie sicher, dass das Kontrollkästchen Fremdschlüsseleigenschaften zur Entität "Posten" hinzufügen aktiviert ist, und klicken Sie auf "OK".
Step 19 - Fügen Sie in ähnlicher Weise eine weitere Zuordnung zwischen Kurs und Einschreibung hinzu.
Step 20 - Ihr Datenmodell sieht nach dem Hinzufügen von Zuordnungen zwischen Entitäten wie folgt aus.
Wir haben jetzt ein einfaches Modell, aus dem wir eine Datenbank generieren und zum Lesen und Schreiben von Daten verwenden können. Lassen Sie uns fortfahren und die Datenbank generieren.
Step 1 - Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche und wählen Sie Datenbank aus Modell generieren…
Step 2 - Sie können eine vorhandene Datenbank auswählen oder eine neue Verbindung erstellen, indem Sie auf Neue Verbindung klicken.
Step 3 - Um eine neue Datenbank zu erstellen, klicken Sie auf Neue Verbindung…
Step 4 - Geben Sie den Servernamen und den Datenbanknamen ein.
Step 5 - Klicken Sie auf Weiter.
Step 6- Klicken Sie auf Fertig stellen. Dadurch wird dem Projekt die Datei * .edmx.sql hinzugefügt. Sie können DDL-Skripte in Visual Studio ausführen, indem Sie die SQL-Datei öffnen, mit der rechten Maustaste klicken und Ausführen auswählen.
Step 7 - Der folgende Dialog wird angezeigt, um eine Verbindung zur Datenbank herzustellen.
Step 8 - Nach erfolgreicher Ausführung wird die folgende Meldung angezeigt.
Step 9 - Gehen Sie zum Server-Explorer. Sie werden sehen, dass die Datenbank mit drei angegebenen Tabellen erstellt wird.
Als nächstes müssen wir unser Modell austauschen, um Code zu generieren, der die DbContext-API verwendet.
Step 1 - Klicken Sie im EF Designer mit der rechten Maustaste auf eine leere Stelle Ihres Modells und wählen Sie Codegenerierungselement hinzufügen…
Sie werden sehen, dass das folgende Dialogfeld "Neues Element hinzufügen" geöffnet wird.
Step 2 - Wählen Sie im mittleren Bereich EF 6.x DbContext Generator aus und geben Sie ModelFirstDemoModel in das Feld Name ein.
Step 3 - In Ihrem Lösungs-Explorer sehen Sie, dass die Vorlagen ModelFirstDemoModel.Context.tt und ModelFirstDemoModel.tt generiert werden.
Der ModelFirstDemoModel.Context generiert den DbCcontext und die Objektgruppen, die Sie zurückgeben und zum Abfragen verwenden können, z. B. für den Kontext, Studenten und Kurse usw.
Die andere Vorlage behandelt alle Arten von Studenten, Kursen usw. Es folgt die Studentenklasse, die automatisch aus dem Entitätsmodell generiert wird.
Es folgt der C # -Code, in dem einige Daten eingegeben und aus der Datenbank abgerufen werden.
using System;
using System.Linq;
namespace EFModelFirstDemo {
class Program {
static void Main(string[] args) {
using (var db = new ModelFirstDemoDBContext()) {
// Create and save a new Student
Console.Write("Enter a name for a new Student: ");
var firstName = Console.ReadLine();
var student = new Student {
StudentID = 1,
FirstName = firstName
};
db.Students.Add(student);
db.SaveChanges();
var query = from b in db.Students
orderby b.FirstName select b;
Console.WriteLine("All student in the database:");
foreach (var item in query) {
Console.WriteLine(item.FirstName);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
}
Wenn der obige Code ausgeführt wird, erhalten Sie die folgende Ausgabe:
Enter a name for a new Student:
Ali Khan
All student in the database:
Ali Khan
Press any key to exit...
Wir empfehlen Ihnen, das obige Beispiel zum besseren Verständnis Schritt für Schritt auszuführen.