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 eine schrittweise exemplarische Vorgehensweise bieten eine Einführung in die erste Datenbankentwicklung mithilfe von Entity Framework. Datenbank First ermöglicht es Ihnen, ein Modell aus einer vorhandenen Datenbank zurückzuerentwickeln. 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 enthält eine Einführung in die Erste Datenbankentwicklung mithilfe von Entity Framework. Datenbank First ermöglicht es Ihnen, ein Modell aus einer vorhandenen Datenbank zurückzuerentwickeln. 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 mindestens 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 einer vorhandenen Datenbank
In der Regel, wenn Sie auf eine vorhandene Datenbank abzielen, wird sie bereits erstellt, aber für diese exemplarische Vorgehensweise müssen wir eine Datenbank erstellen, auf die zugegriffen werden kann.
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.
Öffnen Sie Visual Studio.
Ansicht –> Server-Explorer
Klicken Sie mit der rechten Maustaste auf Datenverbindungen –> Verbindung hinzufügen...
Wenn Sie im Server-Explorer noch keine Verbindung mit einer Datenbank hergestellt haben, müssen Sie Microsoft SQL Server als Datenquelle auswählen.
Stellen Sie eine Verbindung mit LocalDB oder SQL Express her, je nachdem, welches Sie installiert haben, und geben Sie DatabaseFirst.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.
Die neue Datenbank wird nun im Server-Explorer angezeigt, klicken Sie mit der rechten Maustaste darauf, und wählen Sie "Neue Abfrage" aus.
Kopieren Sie die folgende SQL-Datei in die neue Abfrage, klicken Sie dann mit der rechten Maustaste auf die Abfrage, und wählen Sie "Ausführen" aus.
CREATE TABLE [dbo].[Blogs] (
[BlogId] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (200) NULL,
[Url] NVARCHAR (200) NULL,
CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);
CREATE TABLE [dbo].[Posts] (
[PostId] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (200) NULL,
[Content] NTEXT NULL,
[BlogId] INT NOT NULL,
CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);
2. Erstellen der Anwendung
Um die Dinge einfach zu halten, erstellen wir eine einfache Konsolenanwendung, die die Datenbank zuerst 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 DatabaseFirstSample als Namen ein.
- Wählen Sie OK aus.
3. Modell rückentwickeln
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".
Dadurch wird der Entitätsdatenmodell-Assistent gestartet.
Wählen Sie "Aus Datenbank generieren " aus, und klicken Sie auf "Weiter".
Wählen Sie die Verbindung mit der Datenbank aus, die Sie im ersten Abschnitt erstellt haben, geben Sie "BloggingContext" als Namen der Verbindungszeichenfolge ein, und klicken Sie auf "Weiter".
Klicken Sie auf das Kontrollkästchen neben 'Tabellen', um alle Tabellen zu importieren, und klicken Sie auf 'Fertig stellen'.
Sobald der Reverse Engineering-Prozess abgeschlossen ist, wird das neue Modell zu Ihrem Projekt hinzugefügt und geöffnet, damit Sie im Entity Framework Designer anzeigen können. Außerdem wurde Ihrem Projekt eine App.config Datei mit den Verbindungsdetails für die Datenbank hinzugefügt.
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".
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 Datenbankänderungen
Jetzt ist es an der Zeit, einige Änderungen am Datenbankschema vorzunehmen, wenn wir diese Änderungen vornehmen, müssen wir auch unser Modell aktualisieren, um diese Änderungen widerzuspiegeln.
Der erste Schritt besteht darin, einige Änderungen am Datenbankschema vorzunehmen. Wir werden dem Schema eine Benutzertabelle hinzufügen.
- Klicken Sie mit der rechten Maustaste auf die Datenbank "DatabaseFirst.Blogging" im Server-Explorer, und wählen Sie "Neue Abfrage" aus.
- Kopieren Sie die folgende SQL-Datei in die neue Abfrage, klicken Sie dann mit der rechten Maustaste auf die Abfrage, und wählen Sie "Ausführen" aus.
CREATE TABLE [dbo].[Users]
(
[Username] NVARCHAR(50) NOT NULL PRIMARY KEY,
[DisplayName] NVARCHAR(MAX) NULL
)
Nachdem das Schema aktualisiert wurde, ist es an der Zeit, das Modell mit diesen Änderungen zu aktualisieren.
Klicken Sie mit der rechten Maustaste auf eine leere Stelle Ihres Modells im EF-Designer, und wählen Sie "Modell aus Datenbank aktualisieren...", dadurch wird der Update-Assistent gestartet.
Aktivieren Sie auf der Registerkarte "Hinzufügen" des Aktualisierungs-Assistenten das Kontrollkästchen neben "Tabellen", um anzuzeigen, dass wir alle neuen Tabellen aus dem Schema hinzufügen wollen. Auf der Registerkarte "Aktualisieren" werden alle vorhandenen Tabellen im Modell angezeigt, die während der Aktualisierung auf Änderungen überprüft werden. Auf den Registerkarten "Löschen" werden alle Tabellen angezeigt, die aus dem Schema entfernt wurden, und werden auch im Rahmen der Aktualisierung aus dem Modell entfernt. Die Informationen auf diesen beiden Registerkarten werden automatisch erkannt und nur zu Informationszwecken bereitgestellt, Sie können keine Einstellungen ändern.
Klicken Sie im Update-Assistenten auf "Fertig stellen"
Das Modell wird jetzt aktualisiert, um eine neue Benutzerentität einzuschließen, die der Tabelle "Benutzer", die wir der Datenbank hinzugefügt haben, zugeordnet ist.
Zusammenfassung
In dieser exemplarischen Vorgehensweise haben wir uns mit der Ersten Datenbankentwicklung befasst, die es uns ermöglichte, ein Modell im EF-Designer basierend auf einer vorhandenen Datenbank zu erstellen. Anschließend haben wir dieses Modell verwendet, um einige Daten aus der Datenbank zu lesen und zu schreiben. Schließlich haben wir das Modell aktualisiert, um Änderungen widerzuspiegeln, die wir am Datenbankschema vorgenommen haben.