Freigeben über


Tutorial: Erste Schritte mit EF Database First mit MVC 5

Mithilfe von MVC, Entity Framework und ASP.NET Scaffolding können Sie eine Webanwendung erstellen, die eine Schnittstelle zu einer vorhandenen Datenbank bereitstellt. In dieser Tutorialreihe erfahren Sie, wie Sie automatisch Code generieren, mit dem Benutzer Daten anzeigen, bearbeiten, erstellen und löschen können, die sich in einer Datenbanktabelle befinden. Der generierte Code entspricht den Spalten in der Datenbanktabelle. Im letzten Teil der Reihe erfahren Sie, wie Sie dem Datenmodell Datenanmerkungen hinzufügen, um Validierungsanforderungen anzugeben und Formatierung anzuzeigen. Wenn Sie fertig sind, können Sie in einem Azure-Artikel erfahren, wie Sie eine .NET-App und SQL-Datenbank in Azure App Service bereitstellen.

In diesem Tutorial erfahren Sie, wie Sie mit einer vorhandenen Datenbank beginnen und schnell eine Webanwendung erstellen, mit der Benutzer mit den Daten interagieren können. Zum Erstellen der Webanwendung werden Entity Framework 6 und MVC 5 verwendet. Mit ASP.NET Gerüstbaufunktion können Sie automatisch Code zum Anzeigen, Aktualisieren, Erstellen und Löschen von Daten generieren. Mithilfe der Veröffentlichungstools in Visual Studio können Sie die Website und Datenbank ganz einfach in Azure bereitstellen.

Dieser Teil der Reihe konzentriert sich auf das Erstellen einer Datenbank und deren Auffüllung mit Daten.

Diese Serie wurde mit Beiträge von Tom Dykstra und Rick Anderson geschrieben. Es wurde basierend auf dem Feedback von Benutzern im Kommentarbereich verbessert.

In diesem Tutorial:

  • Einrichten der Datenbank

Voraussetzungen

Visual Studio 2017

Einrichten der Datenbank

Um die Umgebung einer vorhandenen Datenbank nachzuahmen, erstellen Sie zuerst eine Datenbank mit vorab ausgefüllten Daten und dann Ihre Webanwendung, die eine Verbindung mit der Datenbank herstellt.

Dieses Tutorial wurde mithilfe von LocalDB mit Visual Studio 2017 entwickelt. Sie können einen vorhandenen Datenbankserver anstelle von LocalDB verwenden, aber abhängig von Ihrer Version von Visual Studio und Ihrem Datenbanktyp werden möglicherweise nicht alle Datentools in Visual Studio unterstützt. Wenn die Tools für Ihre Datenbank nicht verfügbar sind, müssen Sie möglicherweise einige der datenbankspezifischen Schritte in der Verwaltungssuite für Ihre Datenbank ausführen.

Wenn Sie ein Problem mit den Datenbanktools in Ihrer Version von Visual Studio haben, stellen Sie sicher, dass Sie die neueste Version der Datenbanktools installiert haben. Informationen zum Aktualisieren oder Installieren der Datenbanktools finden Sie unter Microsoft SQL Server Data Tools.

Starten Sie Visual Studio, und erstellen Sie ein SQL Server-Datenbankprojekt. Nennen Sie das Projekt ContosoUniversityData.

Erstellen eines Datenbankprojekts

Sie verfügen jetzt über ein leeres Datenbankprojekt. Um sicherzustellen, dass Sie diese Datenbank in Azure bereitstellen können, legen Sie Azure SQL Datenbank als Zielplattform für das Projekt fest. Das Festlegen der Zielplattform stellt die Datenbank nicht tatsächlich bereit. Dies bedeutet nur, dass das Datenbankprojekt überprüft, ob der Datenbankentwurf mit der Zielplattform kompatibel ist. Um die Zielplattform festzulegen, öffnen Sie die Eigenschaften für das Projekt, und wählen Sie Microsoft Azure SQL-Datenbank für die Zielplattform aus.

Sie können die für dieses Tutorial erforderlichen Tabellen erstellen, indem Sie SQL-Skripts hinzufügen, die die Tabellen definieren. Klicken Sie mit der rechten Maustaste auf Ihr Projekt, und fügen Sie ein neues Element hinzu. Wählen Sie Tabellen und Ansichten>Tabelle aus, und nennen Sie sie Student.

Ersetzen Sie in der Tabellendatei den T-SQL-Befehl durch den folgenden Code, um die Tabelle zu erstellen.

CREATE TABLE [dbo].[Student] (
    [StudentID]      INT           IDENTITY (1, 1) NOT NULL,
    [LastName]       NVARCHAR (50) NULL,
    [FirstName]      NVARCHAR (50) NULL,
    [EnrollmentDate] DATETIME      NULL,
    PRIMARY KEY CLUSTERED ([StudentID] ASC)
)

Beachten Sie, dass das Entwurfsfenster automatisch mit dem Code synchronisiert wird. Sie können entweder mit dem Code oder designer arbeiten.

Code und Entwurf anzeigen

Fügen Sie eine weitere Tabelle hinzu. Nennen Sie sie diesmal Kurs, und verwenden Sie den folgenden T-SQL-Befehl.

CREATE TABLE [dbo].[Course] (
    [CourseID] INT           IDENTITY (1, 1) NOT NULL,
    [Title]    NVARCHAR (50) NULL,
    [Credits]  INT           NULL,
    PRIMARY KEY CLUSTERED ([CourseID] ASC)
)

Wiederholen Sie außerdem noch einmal, um eine Tabelle mit dem Namen Registrierung zu erstellen.

CREATE TABLE [dbo].[Enrollment] (
    [EnrollmentID] INT IDENTITY (1, 1) NOT NULL,
    [Grade]        DECIMAL(3, 2) NULL,
    [CourseID]     INT NOT NULL,
    [StudentID]    INT NOT NULL,
    PRIMARY KEY CLUSTERED ([EnrollmentID] ASC),
    CONSTRAINT [FK_dbo.Enrollment_dbo.Course_CourseID] FOREIGN KEY ([CourseID]) 
        REFERENCES [dbo].[Course] ([CourseID]) ON DELETE CASCADE,
    CONSTRAINT [FK_dbo.Enrollment_dbo.Student_StudentID] FOREIGN KEY ([StudentID]) 
        REFERENCES [dbo].[Student] ([StudentID]) ON DELETE CASCADE
)

Sie können Ihre Datenbank mit Daten über ein Skript auffüllen, das nach der Bereitstellung der Datenbank ausgeführt wird. Fügen Sie dem Projekt ein Skript nach der Bereitstellung hinzu. Klicken Sie mit der rechten Maustaste auf Ihr Projekt, und fügen Sie ein neues Element hinzu. Wählen Sie Benutzerskripts>nach der Bereitstellung Skript aus. Sie können den Standardnamen verwenden.

Fügen Sie dem Skript nach der Bereitstellung den folgenden T-SQL-Code hinzu. Dieses Skript fügt der Datenbank einfach Daten hinzu, wenn kein übereinstimmenden Datensatz gefunden wird. Daten, die Sie möglicherweise in die Datenbank eingegeben haben, werden nicht überschrieben oder gelöscht.

MERGE INTO Course AS Target 
USING (VALUES 
        (1, 'Economics', 3), 
        (2, 'Literature', 3), 
        (3, 'Chemistry', 4)
) 
AS Source (CourseID, Title, Credits) 
ON Target.CourseID = Source.CourseID 
WHEN NOT MATCHED BY TARGET THEN 
INSERT (Title, Credits) 
VALUES (Title, Credits);

MERGE INTO Student AS Target
USING (VALUES 
        (1, 'Tibbetts', 'Donnie', '2013-09-01'), 
        (2, 'Guzman', 'Liza', '2012-01-13'), 
(3, 'Catlett', 'Phil', '2011-09-03')
)
AS Source (StudentID, LastName, FirstName, EnrollmentDate)
ON Target.StudentID = Source.StudentID
WHEN NOT MATCHED BY TARGET THEN
INSERT (LastName, FirstName, EnrollmentDate)
VALUES (LastName, FirstName, EnrollmentDate);

MERGE INTO Enrollment AS Target
USING (VALUES 
(1, 2.00, 1, 1),
(2, 3.50, 1, 2),
(3, 4.00, 2, 3),
(4, 1.80, 2, 1),
(5, 3.20, 3, 1),
(6, 4.00, 3, 2)
)
AS Source (EnrollmentID, Grade, CourseID, StudentID)
ON Target.EnrollmentID = Source.EnrollmentID
WHEN NOT MATCHED BY TARGET THEN
INSERT (Grade, CourseID, StudentID)
VALUES (Grade, CourseID, StudentID);

Beachten Sie, dass das Skript nach der Bereitstellung jedes Mal ausgeführt wird, wenn Sie Ihr Datenbankprojekt bereitstellen. Daher müssen Sie beim Schreiben dieses Skripts Ihre Anforderungen sorgfältig berücksichtigen. In einigen Fällen möchten Sie möglicherweise jedes Mal, wenn das Projekt bereitgestellt wird, mit einem bekannten Satz von Daten von vorne beginnen. In anderen Fällen können Sie die vorhandenen Daten in keiner Weise ändern. Basierend auf Ihren Anforderungen können Sie entscheiden, ob Sie ein Skript nach der Bereitstellung benötigen oder was Sie in das Skript einschließen müssen. Weitere Informationen zum Auffüllen Ihrer Datenbank mit einem Skript nach der Bereitstellung finden Sie unter Einschließen von Daten in ein SQL Server Datenbankprojekt.

Sie verfügen jetzt über 4 SQL-Skriptdateien, aber keine tatsächlichen Tabellen. Sie können Ihr Datenbankprojekt in localdb bereitstellen. Klicken Sie in Visual Studio auf die Schaltfläche Start (oder F5), um Ihr Datenbankprojekt zu erstellen und bereitzustellen. Überprüfen Sie auf der Registerkarte Ausgabe , ob der Build und die Bereitstellung erfolgreich waren.

Um festzustellen, dass die neue Datenbank erstellt wurde, öffnen Sie SQL Server Objekt-Explorer, und suchen Sie nach dem Namen des Projekts auf dem richtigen lokalen Datenbankserver (in diesem Fall (localdb)\ProjectsV13).

Um zu sehen, dass die Tabellen mit Daten aufgefüllt sind, klicken Sie mit der rechten Maustaste auf eine Tabelle, und wählen Sie Daten anzeigen aus.

Tabellendaten anzeigen

Es wird eine bearbeitbare Ansicht der Tabellendaten angezeigt. Wenn Sie beispielsweise Tabellen>dbo.course>Daten anzeigen auswählen, wird eine Tabelle mit drei Spalten (Kurs, Titel und Guthaben) und vier Zeilen angezeigt.

Zusätzliche Ressourcen

Ein einführungsbeispiel zur Code First-Entwicklung finden Sie unter Erste Schritte mit ASP.NET MVC 5. Ein erweitertes Beispiel finden Sie unter Erstellen eines Entity Framework-Datenmodells für eine ASP.NET MVC 4-App.

Eine Anleitung zur Auswahl des zu verwendenden Entity Framework-Ansatzes finden Sie unter Entity Framework-Entwicklungsansätze.

Nächste Schritte

In diesem Tutorial:

  • Einrichten der Datenbank

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie die Webanwendung und datenmodelle erstellen.