Bagikan melalui


Tutorial: Mulai menggunakan EF Database First menggunakan MVC 5

Dengan menggunakan MVC, Entity Framework, dan ASP.NET Scaffolding, Anda dapat membuat aplikasi web yang menyediakan antarmuka ke database yang sudah ada. Seri tutorial ini menunjukkan kepada Anda cara membuat kode secara otomatis yang memungkinkan pengguna menampilkan, mengedit, membuat, dan menghapus data yang berada dalam tabel database. Kode yang dihasilkan sesuai dengan kolom dalam tabel database. Di bagian terakhir seri, Anda mempelajari cara menambahkan anotasi data ke model data untuk menentukan persyaratan validasi dan pemformatan tampilan. Setelah selesai, Anda dapat melanjutkan ke artikel Azure untuk mempelajari cara menyebarkan aplikasi .NET dan database SQL ke Azure App Service.

Tutorial ini menunjukkan cara memulai dengan database yang ada dan dengan cepat membuat aplikasi web yang memungkinkan pengguna berinteraksi dengan data. Ini menggunakan Entity Framework 6 dan MVC 5 untuk membangun aplikasi web. Fitur perancah ASP.NET memungkinkan Anda membuat kode secara otomatis untuk menampilkan, memperbarui, membuat, dan menghapus data. Dengan menggunakan alat penerbitan dalam Visual Studio, Anda dapat dengan mudah menyebarkan situs dan database ke Azure.

Bagian seri ini berfokus pada pembuatan database dan mengisinya dengan data.

Seri ini ditulis dengan kontribusi dari Tom Dykstra dan Rick Anderson. Ini ditingkatkan berdasarkan umpan balik dari pengguna di bagian komentar.

Di tutorial ini, Anda akan:

  • Menyiapkan database

Prasyarat

Visual Studio 2017

Menyiapkan database

Untuk menipu lingkungan memiliki database yang sudah ada, Anda akan terlebih dahulu membuat database dengan beberapa data yang telah diisi sebelumnya, lalu membuat aplikasi web Anda yang tersambung ke database.

Tutorial ini dikembangkan menggunakan LocalDB dengan Visual Studio 2017. Anda dapat menggunakan server database yang sudah ada alih-alih LocalDB, tetapi bergantung pada versi Visual Studio dan jenis database Anda, semua alat data di Visual Studio mungkin tidak didukung. Jika alat tidak tersedia untuk database Anda, Anda mungkin perlu melakukan beberapa langkah khusus database dalam rangkaian manajemen untuk database Anda.

Jika Anda memiliki masalah dengan alat database di versi Visual Studio Anda, pastikan Anda telah menginstal versi terbaru alat database. Untuk informasi tentang memperbarui atau menginstal alat database, lihat Microsoft SQL Server Data Tools.

Luncurkan Visual Studio dan buat Proyek Database SQL Server. Beri nama proyek ContosoUniversityData.

membuat proyek database

Anda sekarang memiliki proyek database kosong. Untuk memastikan bahwa Anda dapat menyebarkan database ini ke Azure, Anda akan mengatur Azure SQL Database sebagai platform target untuk proyek. Mengatur platform target tidak benar-benar menyebarkan database; itu hanya berarti bahwa proyek database akan memverifikasi bahwa desain database kompatibel dengan platform target. Untuk mengatur platform target, buka Properti untuk proyek dan pilih Microsoft Azure SQL Database untuk platform target.

Anda dapat membuat tabel yang diperlukan untuk tutorial ini dengan menambahkan skrip SQL yang menentukan tabel. Klik kanan proyek Anda dan tambahkan item baru. Pilih Tabel dan Tabel Tampilan> dan beri nama Siswa.

Dalam file tabel, ganti perintah T-SQL dengan kode berikut untuk membuat 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)
)

Perhatikan bahwa jendela desain secara otomatis disinkronkan dengan kode. Anda dapat bekerja dengan kode atau perancang.

tampilkan kode dan desain

Tambahkan tabel lain. Kali ini beri nama Kursus dan gunakan perintah T-SQL berikut.

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

Dan, ulangi sekali lagi untuk membuat tabel bernama Pendaftaran.

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
)

Anda dapat mengisi database Anda dengan data melalui skrip yang dijalankan setelah database disebarkan. Tambahkan Skrip Pasca-Penyebaran ke proyek. Klik kanan proyek Anda dan tambahkan item baru. Pilih Skrip PenggunaPasca-Penyebaran> Skrip. Anda dapat menggunakan nama default.

Tambahkan kode T-SQL berikut ke skrip pasca-penyebaran. Skrip ini hanya menambahkan data ke database ketika tidak ada rekaman yang cocok yang ditemukan. Ini tidak menimpa atau menghapus data apa pun yang mungkin telah Anda masukkan ke dalam database.

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

Penting untuk dicatat bahwa skrip pasca-penyebaran dijalankan setiap kali Anda menyebarkan proyek database Anda. Oleh karena itu, Anda perlu mempertimbangkan kebutuhan Anda dengan hati-hati saat menulis skrip ini. Dalam beberapa kasus, Anda mungkin ingin memulai kembali dari sekumpulan data yang diketahui setiap kali proyek disebarkan. Dalam kasus lain, Anda mungkin tidak ingin mengubah data yang ada dengan cara apa pun. Berdasarkan kebutuhan Anda, Anda dapat memutuskan apakah Anda memerlukan skrip pasca-penyebaran atau apa yang perlu Anda sertakan dalam skrip. Untuk informasi selengkapnya tentang mengisi database Anda dengan skrip pasca-penyebaran, lihat Menyertakan Data dalam Proyek Database SQL Server.

Anda sekarang memiliki 4 file skrip SQL tetapi tidak ada tabel aktual. Anda siap untuk menyebarkan proyek database Anda ke localdb. Di Visual Studio, klik tombol Mulai (atau F5) untuk membangun dan menyebarkan proyek database Anda. Periksa tab Output untuk memverifikasi bahwa build dan penyebaran berhasil.

Untuk melihat bahwa database baru telah dibuat, buka SQL Server Object Explorer dan cari nama proyek di server database lokal yang benar (dalam hal ini (localdb)\ProjectsV13).

Untuk melihat bahwa tabel diisi dengan data, klik kanan tabel, dan pilih Tampilkan Data.

perlihatkan data tabel

Tampilan data tabel yang dapat diedit ditampilkan. Misalnya, jika Anda memilih Tabel>dbo.course>Tampilkan Data, Anda akan melihat tabel dengan tiga kolom (Kursus, Judul, dan Kredit) dan empat baris.

Sumber Daya Tambahan:

Untuk contoh pengantar pengembangan Code First, lihat Memulai ASP.NET MVC 5. Untuk contoh yang lebih canggih, lihat Membuat Model Data Kerangka Kerja Entitas untuk aplikasi ASP.NET MVC 4.

Untuk panduan tentang memilih pendekatan Kerangka Kerja Entitas mana yang akan digunakan, lihat Pendekatan Pengembangan Kerangka Kerja Entitas.

Langkah berikutnya

Di tutorial ini, Anda akan:

  • Menyiapkan database

Lanjutkan ke tutorial berikutnya untuk mempelajari cara membuat aplikasi web dan model data.