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.
Dieses Video und die Schritt-für-Schritt-Anleitung bieten eine Einführung in die Model-First-Entwicklung mit dem Entity Framework. Modell First ermöglicht es Ihnen, ein neues Modell mit dem Entity Framework-Designer zu erstellen und dann ein Datenbankschema aus dem Modell zu generieren. Das Modell wird in einer EDMX-Datei (EDMX-Erweiterung) gespeichert und kann im Entity Framework-Designer angezeigt und bearbeitet werden. Die Klassen, mit denen Sie in Ihrer Anwendung interagieren, werden automatisch aus der EDMX-Datei generiert.
Sehen Sie sich das Video an
Dieses Video und ein schrittweises Tutorial bieten eine Einführung in die Model-First-Entwicklung mit dem Entity Framework. Modell First ermöglicht es Ihnen, ein neues Modell mit dem Entity Framework-Designer zu erstellen und dann ein Datenbankschema aus dem Modell zu generieren. Das Modell wird in einer EDMX-Datei (EDMX-Erweiterung) gespeichert und kann im Entity Framework-Designer angezeigt und bearbeitet werden. Die Klassen, mit denen Sie in Ihrer Anwendung interagieren, werden automatisch aus der EDMX-Datei generiert.
Präsentiert von: Rowan Miller
Voraussetzungen
Sie müssen Visual Studio 2010 oder Visual Studio 2012 installiert haben, um diese exemplarische Vorgehensweise abzuschließen.
Wenn Sie Visual Studio 2010 verwenden, müssen Sie auch NuGet installiert haben.
1. Erstellen der Anwendung
Um die Dinge einfach zu halten, erstellen wir eine einfache Konsolenanwendung, die das Model First zum Ausführen des Datenzugriffs verwendet:
- Öffnen Sie Visual Studio.
- Datei -> Neu -> Projekt...
- Wählen Sie Im linken Menü "Windows" und "Konsolenanwendung" aus.
- Geben Sie ModelFirstSample als Namen ein.
- Wählen Sie OK aus.
2. Modell erstellen
Wir verwenden den Entity Framework-Designer, der als Teil von Visual Studio enthalten ist, um unser Modell zu erstellen.
Projekt –> Neues Element hinzufügen...
Wählen Sie Daten aus dem linken Menü und dann ADO.NET Entity Data Model
Geben Sie "BloggingModel " als Namen ein, und klicken Sie auf "OK", damit wird der Entitätsdatenmodell-Assistent gestartet.
Leeres Modell auswählen und auf 'Fertig stellen' klicken
Der Entity Framework-Designer wird mit einem leeren Modell geöffnet. Jetzt können wir mit dem Hinzufügen von Entitäten, Eigenschaften und Zuordnungen zum Modell beginnen.
Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche, und wählen Sie "Eigenschaften" aus.
Ändern Sie im Eigenschaftenfenster den Entitätscontainernamen in BloggingContextDies ist der Name des abgeleiteten Kontexts, der für Sie generiert wird, der Kontext stellt eine Sitzung mit der Datenbank dar, sodass wir Daten abfragen und speichern können.
Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche, und wählen Sie "Neu hinzufügen –> Entität" aus...
Geben Sie "Blog " als Entitätsnamen und "BlogId " als Schlüsselnamen ein, und klicken Sie auf "OK".
Klicken Sie mit der rechten Maustaste auf die neue Entität auf der Entwurfsoberfläche, und wählen Sie "Neu hinzufügen -> Skalare Eigenschaft" aus, geben Sie "Name " als Namen der Eigenschaft ein.
Wiederholen Sie diesen Vorgang, um eine URL-Eigenschaft hinzuzufügen.
Klicken Sie mit der rechten Maustaste auf die URL-Eigenschaft auf der Entwurfsoberfläche und wählen Sie Eigenschaften aus. Ändern Sie im Eigenschaftenfenster die Nullable-Einstellung auf True. Dadurch können wir einen Blog in der Datenbank speichern, ohne ihm eine URL zuzuweisen.
Fügen Sie mithilfe der soeben gelernten Techniken eine Post-Entität mit einer PostId-Schlüsseleigenschaft hinzu.
Hinzufügen von Title- und Content-Skalareigenschaften zur Post-Entität
Nachdem wir nun über ein paar Entitäten verfügen, ist es an der Zeit, eine Zuordnung (oder Beziehung) zwischen ihnen hinzuzufügen.
Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche und wählen Sie
'Neue Zuordnung hinzufügen…' aus. Ein Ende der Beziehung zeigt auf Blog mit einer Multiplizität von Eins und das andere Ende zeigt auf Post mit einer Multiplizität von VieleDas bedeutet, dass ein Blog viele Beiträge hat und ein Beitrag zu einem Blog gehört
Stellen Sie sicher, dass das Kontrollkästchen 'Fremdschlüsseleigenschaften hinzufügen' aktiviert ist, und klicken Sie auf 'OK'.
Wir verfügen jetzt über ein einfaches Modell, aus dem wir eine Datenbank generieren und zum Lesen und Schreiben von Daten verwenden können.
Zusätzliche Schritte in Visual Studio 2010
Wenn Sie in Visual Studio 2010 arbeiten, müssen Sie einige zusätzliche Schritte ausführen, um ein Upgrade auf die neueste Version von Entity Framework durchzuführen. Das Upgrade ist wichtig, da sie Ihnen Zugriff auf eine verbesserte API-Oberfläche bietet, die viel einfacher zu verwenden ist, sowie die neuesten Fehlerbehebungen.
Zunächst müssen wir die neueste Version von Entity Framework von NuGet abrufen.
- Projekt–> NuGet-Pakete verwalten...Wenn Sie nicht über die Option "NuGet-Pakete verwalten" verfügen, sollten Sie die neueste Version von NuGet installieren.
- Wählen Sie die Registerkarte "Online " aus.
- Auswählen des EntityFramework-Pakets
- Klicken Sie auf Install (Installieren).
Als Nächstes müssen wir unser Modell austauschen, um Code zu generieren, der die DbContext-API verwendet, die in späteren Versionen von Entity Framework eingeführt wurde.
Klicken Sie im EF-Designer mit der rechten Maustaste auf eine leere Stelle Ihres Modells, und wählen Sie " Codegenerierungselement hinzufügen" aus...
Wählen Sie im linken Menü "Onlinevorlagen" aus, und suchen Sie nach "DbContext".
Wählen Sie den EF 5.x DbContext-Generator für C# aus, geben Sie "BloggingModel " als Namen ein, und klicken Sie auf "Hinzufügen".
3. Generieren der Datenbank
Aufgrund unseres Modells kann Entity Framework ein Datenbankschema berechnen, mit dem wir Daten mithilfe des Modells speichern und abrufen können.
Der Datenbankserver, der mit Visual Studio installiert ist, unterscheidet sich je nach installierter Version von Visual Studio:
- Wenn Sie Visual Studio 2010 verwenden, erstellen Sie eine SQL Express-Datenbank.
- Wenn Sie Visual Studio 2012 verwenden, erstellen Sie eine LocalDB-Datenbank .
Lassen Sie uns fortfahren und die Datenbank generieren.
Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche, und wählen Sie "Datenbank aus Modell generieren" aus...
Klicken Sie auf "Neue Verbindung" und geben Sie entweder LocalDB oder SQL Express an, je nachdem, welche Version von Visual Studio Sie verwenden, ModelFirst.Blogging als Datenbanknamen ein.
Wählen Sie "OK" aus, und Sie werden gefragt, ob Sie eine neue Datenbank erstellen möchten, wählen Sie "Ja" aus.
Wählen Sie "Weiter" aus, und der Entity Framework-Designer berechnet ein Skript zum Erstellen des Datenbankschemas.
Sobald das Skript angezeigt wird, klicken Sie auf "Fertig stellen ", und das Skript wird Ihrem Projekt hinzugefügt und geöffnet.
Klicken Sie mit der rechten Maustaste auf das Skript und wählen Sie „Ausführen“ aus. Es wird eine Aufforderung erscheinen, die Datenbank anzugeben, mit der Sie eine Verbindung herstellen möchten. Geben Sie entweder LocalDB oder SQL Server Express an, abhängig davon, welche Version von Visual Studio Sie verwenden.
4. Lesen und Schreiben von Daten
Nachdem wir nun über ein Modell verfügen, ist es an der Zeit, es für den Zugriff auf einige Daten zu verwenden. Die Klassen, die wir für den Zugriff auf Daten verwenden, werden automatisch basierend auf der EDMX-Datei generiert.
Dieser Screenshot stammt aus Visual Studio 2012, wenn Sie Visual Studio 2010 verwenden, werden die BloggingModel.tt und BloggingModel.Context.tt Dateien direkt unter Ihrem Projekt und nicht unter der EDMX-Datei geschachtelt.
Implementieren Sie die Main-Methode in Program.cs wie unten dargestellt. Dieser Code erstellt eine neue Instanz unseres Kontexts und fügt dann einen neuen Blog ein. Anschließend wird eine LINQ-Abfrage verwendet, um alle Blogs aus der Datenbank abzurufen, die alphabetisch nach Title sortiert sind.
class Program
{
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
// Create and save a new Blog
Console.Write("Enter a name for a new Blog: ");
var name = Console.ReadLine();
var blog = new Blog { Name = name };
db.Blogs.Add(blog);
db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
select b;
Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
Console.WriteLine(item.Name);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Sie können die Anwendung jetzt ausführen und testen.
Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...
5. Umgang mit Modelländerungen
Jetzt ist es an der Zeit, einige Änderungen am Modell vorzunehmen, wenn wir diese Änderungen vornehmen, müssen wir auch das Datenbankschema aktualisieren.
Wir beginnen mit dem Hinzufügen einer neuen Benutzerentität zu unserem Modell.
Hinzufügen eines neuen Benutzernamens mit Benutzername als Schlüsselname und Zeichenfolge als Eigenschaftstyp für den Schlüssel
Klicken Sie mit der rechten Maustaste auf die Username-Eigenschaft auf der Entwurfsoberfläche, und wählen Sie "Eigenschaften" aus. Ändern Sie im Fenster "Eigenschaften" die Einstellung "MaxLength" auf 50Zeichen. Dadurch werden die Daten eingeschränkt, die im Benutzernamen gespeichert werden können, auf 50 Zeichen.
Hinzufügen einer skalaren DisplayName-Eigenschaft zur Benutzerentität
Wir haben jetzt ein aktualisiertes Modell, und wir sind bereit, die Datenbank so zu aktualisieren, dass der neue Benutzerentitätstyp berücksichtigt wird.
- Klicken Sie mit der rechten Maustaste auf die Entwurfsoberfläche, und wählen Sie "Datenbank aus Modell generieren" aus. Entity Framework berechnet ein Skript, um ein Schema basierend auf dem aktualisierten Modell neu zu erstellen.
- Klicken Sie auf Fertig stellen.
- Möglicherweise erhalten Sie Warnungen zum Überschreiben des vorhandenen DDL-Skripts und der Zuordnungs- und Speicherteile des Modells. Klicken Sie für beide Warnungen auf "Ja ".
- Das aktualisierte SQL-Skript zum Erstellen der Datenbank wird für Sie geöffnet.
Das generierte Skript legt alle vorhandenen Tabellen ab und erstellt dann das Schema von Grund auf neu. Dies kann für die lokale Entwicklung funktionieren, ist aber nicht für das Pushen von Änderungen an einer Datenbank geeignet, die bereits bereitgestellt wurde. Wenn Sie Änderungen an einer Datenbank veröffentlichen müssen, die bereits bereitgestellt wurde, müssen Sie das Skript bearbeiten oder ein Schemaabgleichstool verwenden, um ein Migrationsskript zu berechnen. - Klicken Sie mit der rechten Maustaste auf das Skript und wählen Sie Ausführen. Sie werden aufgefordert, die Datenbank anzugeben, mit der eine Verbindung hergestellt werden soll. Geben Sie entweder LocalDB oder SQL Server Express an, je nachdem, welche Version von Visual Studio Sie verwenden.
Zusammenfassung
In dieser exemplarischen Vorgehensweise haben wir uns mit der Entwicklung von Model First befasst, die es uns ermöglichte, ein Modell im EF-Designer zu erstellen und dann eine Datenbank aus diesem Modell zu generieren. Anschließend haben wir das Modell verwendet, um einige Daten aus der Datenbank zu lesen und zu schreiben. Schließlich haben wir das Modell aktualisiert und dann das Datenbankschema neu erstellt, um dem Modell zu entsprechen.