Samouczek: rozpoczynanie pracy z usługą EF Database First przy użyciu wzorca MVC 5

Korzystając z wzorca MVC, platformy Entity Framework i ASP.NET tworzenia szkieletów, można utworzyć aplikację internetową, która udostępnia interfejs istniejącej bazy danych. W tej serii samouczków pokazano, jak automatycznie generować kod, który umożliwia użytkownikom wyświetlanie, edytowanie, tworzenie i usuwanie danych znajdujących się w tabeli bazy danych. Wygenerowany kod odpowiada kolumnom w tabeli bazy danych. W ostatniej części serii dowiesz się, jak dodać adnotacje danych do modelu danych, aby określić wymagania dotyczące walidacji i wyświetlić formatowanie. Gdy skończysz, możesz przejść do artykułu na temat platformy Azure, aby dowiedzieć się, jak wdrożyć aplikację platformy .NET i bazę danych SQL w Azure App Service.

W tym samouczku pokazano, jak rozpocząć pracę z istniejącą bazą danych i szybko utworzyć aplikację internetową, która umożliwia użytkownikom interakcję z danymi. Używa ona platformy Entity Framework 6 i MVC 5 do kompilowania aplikacji internetowej. Funkcja tworzenia szkieletów ASP.NET umożliwia automatyczne generowanie kodu do wyświetlania, aktualizowania, tworzenia i usuwania danych. Za pomocą narzędzi do publikowania w programie Visual Studio można łatwo wdrożyć witrynę i bazę danych na platformie Azure.

Ta część serii koncentruje się na tworzeniu bazy danych i wypełnianiu jej danymi.

Ta seria została napisana z wkładami Tom Dykstra i Rick Anderson. Została ona ulepszona w oparciu o opinie użytkowników w sekcji komentarzy.

W tym samouczku zostały wykonane następujące czynności:

  • Konfigurowanie bazy danych

Wymagania wstępne

Visual Studio 2017

Konfigurowanie bazy danych

Aby naśladować środowisko posiadania istniejącej bazy danych, najpierw utworzysz bazę danych z wstępnie wypełnionymi danymi, a następnie utworzysz aplikację internetową, która łączy się z bazą danych.

Ten samouczek został opracowany przy użyciu bazy danych LocalDB w programie Visual Studio 2017. Możesz użyć istniejącego serwera bazy danych zamiast bazy danych LocalDB, ale w zależności od używanej wersji programu Visual Studio i typu bazy danych wszystkie narzędzia do obsługi danych w programie Visual Studio mogą nie być obsługiwane. Jeśli narzędzia nie są dostępne dla bazy danych, może być konieczne wykonanie niektórych kroków specyficznych dla bazy danych w pakiecie zarządzania bazy danych.

Jeśli masz problem z narzędziami bazy danych w używanej wersji programu Visual Studio, upewnij się, że zainstalowano najnowszą wersję narzędzi bazy danych. Aby uzyskać informacje na temat aktualizowania lub instalowania narzędzi bazy danych, zobacz Microsoft SQL Server Data Tools.

Uruchom program Visual Studio i utwórz projekt bazy danych SQL Server. Nadaj projektowi nazwę ContosoUniversityData.

tworzenie projektu bazy danych

Masz teraz pusty projekt bazy danych. Aby upewnić się, że możesz wdrożyć tę bazę danych na platformie Azure, ustawisz Azure SQL Database jako platformę docelową dla projektu. Ustawienie platformy docelowej w rzeczywistości nie wdraża bazy danych; Oznacza to tylko, że projekt bazy danych sprawdzi, czy projekt bazy danych jest zgodny z platformą docelową. Aby ustawić platformę docelową, otwórz pozycję Właściwości projektu i wybierz Microsoft Azure SQL Database dla platformy docelowej.

Tabele potrzebne w tym samouczku można utworzyć, dodając skrypty SQL definiujące tabele. Kliknij prawym przyciskiem myszy projekt i dodaj nowy element. Wybierz pozycję Tabele i widoki>Tabela i nadaj jej nazwę Student.

W pliku tabeli zastąp polecenie T-SQL poniższym kodem, aby utworzyć tabelę.

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)
)

Zwróć uwagę, że okno projektowania automatycznie synchronizuje się z kodem. Możesz pracować z kodem lub projektantem.

pokaż kod i projekt

Dodaj kolejną tabelę. Tym razem nadaj jej nazwę Course i użyj następującego polecenia języka T-SQL.

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

Powtórz jeszcze raz, aby utworzyć tabelę o nazwie Enrollment (Rejestracja).

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
)

Bazę danych można wypełnić danymi za pomocą skryptu uruchamianego po wdrożeniu bazy danych. Dodaj skrypt po wdrożeniu do projektu. Kliknij prawym przyciskiem myszy projekt i dodaj nowy element. Wybierz pozycję Skrypty> użytkownikapo wdrożeniu. Możesz użyć nazwy domyślnej.

Dodaj następujący kod T-SQL do skryptu po wdrożeniu. Ten skrypt po prostu dodaje dane do bazy danych, gdy nie znaleziono pasującego rekordu. Nie zastępuje ani nie usuwa żadnych danych, które mogły zostać wprowadzone do bazy danych.

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);

Należy pamiętać, że skrypt po wdrożeniu jest uruchamiany za każdym razem, gdy wdrażasz projekt bazy danych. Dlatego podczas pisania tego skryptu należy dokładnie wziąć pod uwagę wymagania. W niektórych przypadkach możesz zacząć od początku od znanego zestawu danych za każdym razem, gdy projekt zostanie wdrożony. W innych przypadkach możesz nie chcieć zmienić istniejących danych w żaden sposób. W zależności od wymagań możesz zdecydować, czy potrzebujesz skryptu po wdrożeniu, czy też tego, co należy uwzględnić w skry skrycie. Aby uzyskać więcej informacji na temat wypełniania bazy danych za pomocą skryptu po wdrożeniu, zobacz Dołączanie danych w projekcie bazy danych SQL Server.

Masz teraz 4 pliki skryptów SQL, ale nie masz rzeczywistych tabel. Wszystko jest gotowe do wdrożenia projektu bazy danych w bazie danych localdb. W programie Visual Studio kliknij przycisk Start (lub F5), aby skompilować i wdrożyć projekt bazy danych. Sprawdź kartę Dane wyjściowe , aby sprawdzić, czy kompilacja i wdrożenie zakończyło się pomyślnie.

Aby zobaczyć, że nowa baza danych została utworzona, otwórz SQL Server Eksplorator obiektów i poszukaj nazwy projektu na poprawnym lokalnym serwerze bazy danych (w tym przypadku (localdb)\ProjectsV13.

Aby zobaczyć, że tabele są wypełniane danymi, kliknij prawym przyciskiem myszy tabelę i wybierz polecenie Wyświetl dane.

pokaż dane tabeli

Zostanie wyświetlony edytowalny widok danych tabeli. Jeśli na przykład wybierzesz pozycję Tabele>dbo.course>Wyświetl dane, zostanie wyświetlona tabela z trzema kolumnami (Kurs, Tytuł i Środki) oraz cztery wiersze.

Dodatkowe zasoby

Aby zapoznać się z wprowadzającym przykładem tworzenia aplikacji Code First, zobacz Wprowadzenie z ASP.NET MVC 5. Aby zapoznać się z bardziej zaawansowanym przykładem, zobacz Creating an Entity Framework Data Model for an ASP.NET MVC 4 App (Tworzenie modelu danych platformy Entity Framework dla aplikacji MVC 4).

Aby uzyskać wskazówki dotyczące wybierania podejścia Entity Framework do użycia, zobacz Entity Framework Development Approaches (Metody programowania w programie Entity Framework).

Następne kroki

W tym samouczku zostały wykonane następujące czynności:

  • Konfigurowanie bazy danych

Przejdź do następnego samouczka, aby dowiedzieć się, jak utworzyć aplikację internetową i modele danych.