Bagikan melalui


Menambahkan Model dan Pengontrol

Unduh Proyek yang Selesai

Di bagian ini, Anda akan menambahkan kelas model yang menentukan entitas database. Kemudian Anda akan menambahkan pengontrol API Web yang melakukan operasi CRUD pada entitas tersebut.

Menambahkan Kelas Model

Dalam tutorial ini, kita akan membuat database dengan menggunakan pendekatan "Code First" untuk Entity Framework (EF). Dengan Code First, Anda menulis kelas C# yang sesuai dengan tabel database, dan EF membuat database. (Untuk informasi selengkapnya, lihat Pendekatan Pengembangan Kerangka Kerja Entitas.)

Kita mulai dengan mendefinisikan objek domain kita sebagai POCO (objek CLR biasa). Kami akan membuat POCO berikut:

  • Penulis
  • Buku

Di Penjelajah Solusi, klik kanan folder Model. Pilih Tambahkan, lalu pilih Kelas. Beri nama kelas Author.

Cuplikan layar folder Penjelajah Solusi memperlihatkan folder Model yang disorot dengan warna biru dan item menu Tambahkan dan Kelas disorot dengan warna kuning.

Ganti semua kode boilerplate di Author.cs dengan kode berikut.

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace BookService.Models
{
    public class Author
    {
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
    }
}

Tambahkan kelas lain bernama Book, dengan kode berikut.

using System.ComponentModel.DataAnnotations;

namespace BookService.Models
{
    public class Book
    {
        public int Id { get; set; }
        [Required]
        public string Title { get; set; }
        public int Year { get; set; }
        public decimal Price { get; set; }
        public string Genre { get; set; }

        // Foreign Key
        public int AuthorId { get; set; }
        // Navigation property
        public Author Author { get; set; }
    }
}

Entity Framework akan menggunakan model ini untuk membuat tabel database. Untuk setiap model, Id properti akan menjadi kolom kunci utama tabel database.

Di kelas Buku, AuthorId mendefinisikan kunci asing ke Author dalam tabel. (Untuk kesederhanaan, saya berasumsi bahwa setiap buku memiliki satu penulis.) Kelas buku juga berisi properti navigasi ke yang terkait Author. Anda dapat menggunakan properti navigasi untuk mengakses yang terkait Author dalam kode. Saya mengatakan lebih lanjut tentang properti navigasi di bagian 4, Menangani Hubungan Entitas.

Menambahkan Pengontrol API Web

Di bagian ini, kita akan menambahkan pengontrol API Web yang mendukung operasi CRUD (membuat, membaca, memperbarui, dan menghapus). Pengontrol akan menggunakan Kerangka Kerja Entitas untuk berkomunikasi dengan lapisan database.

Pertama, Anda dapat menghapus file Controllers/ValuesController.cs. File ini berisi contoh pengontrol Api Web, tetapi Anda tidak memerlukannya untuk tutorial ini.

Cuplikan layar jendela Penjelajah Solusi yang ditampilkan dengan file Pengontrol Nilai dot c s yang disorot dengan warna merah yang menunjukkan bahwa file tersebut harus dihapus.

Selanjutnya, bangun proyek. Perancah API Web menggunakan pantulan untuk menemukan kelas model, sehingga membutuhkan rakitan yang dikompilasi.

Di Penjelajah Solusi, klik kanan folder Pengontrol. Pilih Tambahkan, lalu pilih Pengontrol.

Cuplikan layar jendela Penjelajah Solusi dengan folder Pengontrol dan item menu Tambahkan dan Pengontrol disorot dengan warna biru dan kuning.

Dalam dialog Tambahkan Perancah , pilih "Pengontrol API Web 2 dengan tindakan, menggunakan Kerangka Kerja Entitas". Klik Tambahkan.

Cuplikan layar dialog Tambahkan Perancah memperlihatkan Pengontrol Web A P I 2 dengan tindakan menggunakan opsi Kerangka Kerja Entitas disorot dengan warna biru.

Dalam dialog Tambahkan Pengontrol , lakukan hal berikut:

  1. Di menu drop-down Kelas model, pilih Author kelas . (Jika Anda tidak melihatnya tercantum di menu dropdown, pastikan Anda membuat proyek.)
  2. Periksa "Gunakan tindakan pengontrol asinkron".
  3. Biarkan nama pengontrol sebagai "AuthorsController".
  4. Klik tombol plus (+) di samping Kelas Konteks Data.

Cuplikan layar dialog Tambahkan Pengontrol memperlihatkan tombol plus yang dilingkari dengan warna merah dan kelas Penulis dipilih di menu dropdown Kelas model.

Dalam dialog Konteks Data Baru , biarkan nama default dan klik Tambahkan.

Cuplikan layar dialog Konteks Data Baru memperlihatkan nama default di bidang Jenis konteks data baru.

Klik Tambahkan untuk menyelesaikan dialog Tambahkan Pengontrol . Dialog menambahkan dua kelas ke proyek Anda:

  • AuthorsController mendefinisikan pengontrol API Web. Pengontrol mengimplementasikan REST API yang digunakan klien untuk melakukan operasi CRUD pada daftar penulis.
  • BookServiceContext mengelola objek entitas selama durasi, yang mencakup pengisian objek dengan data dari database, pelacakan perubahan, dan data yang bertahan ke database. Ini mewarisi dari DbContext.

Cuplikan layar jendela Penjelajah Solusi dengan file Authors Controller dot c s dan file Book Service Context dot c s dilingkari dengan warna merah.

Pada titik ini, bangun proyek lagi. Sekarang melalui langkah yang sama untuk menambahkan pengontrol API untuk Book entitas. Kali ini, pilih Book untuk kelas model, dan pilih kelas yang ada BookServiceContext untuk kelas konteks data. (Jangan membuat konteks data baru.) Klik Tambahkan untuk menambahkan pengontrol.

Cuplikan layar jendela Tambahkan Pengontrol dengan kelas Model buku dipilih di menu dropdown Kelas model.