Bagikan melalui


Dukungan Enum - Kode Pertama

Catatan

EF5 Onwards Only - Fitur, API, dll. yang dibahas di halaman ini diperkenalkan dalam Entity Framework 5. Jika Anda menggunakan versi yang lebih lama, beberapa atau semua informasi tidak berlaku.

Video dan panduan langkah demi langkah ini menunjukkan cara menggunakan jenis enum dengan Kode Kerangka Kerja Entitas Terlebih Dahulu. Ini juga menunjukkan cara menggunakan enum dalam kueri LINQ.

Panduan ini akan menggunakan Kode Pertama untuk membuat database baru, tetapi Anda juga dapat menggunakan Kode Terlebih Dahulu untuk memetakan ke database yang sudah ada.

Dukungan Enum diperkenalkan dalam Entity Framework 5. Untuk menggunakan fitur baru seperti enum, jenis data spasial, dan fungsi bernilai tabel, Anda harus menargetkan .NET Framework 4.5. Visual Studio 2012 menargetkan .NET 4.5 secara default.

Dalam Kerangka Kerja Entitas, enumerasi dapat memiliki jenis yang mendasar berikut: Byte, Int16, Int32, Int64 , atau SByte.

Tonton video

Video ini menunjukkan cara menggunakan jenis enum dengan Kode Kerangka Kerja Entitas Terlebih Dahulu. Ini juga menunjukkan cara menggunakan enum dalam kueri LINQ.

Disajikan Oleh: Julia Kornich

Video: WMV | MP4 | WMV (ZIP)

Prasyarat

Anda harus menginstal edisi Visual Studio 2012, Ultimate, Premium, Professional, atau Web Express untuk menyelesaikan panduan ini.

 

Menyiapkan Proyek

  1. Buka Visual Studio 2012
  2. Pada menu File , arahkan ke Baru, lalu klik Proyek
  3. Di panel kiri, klik Visual C#, lalu pilih templat Konsol
  4. Masukkan EnumCodeFirst sebagai nama proyek dan klik OK

Tentukan Model Baru menggunakan Kode Terlebih Dahulu

Saat menggunakan pengembangan Code First, Anda biasanya mulai dengan menulis kelas .NET Framework yang menentukan model konseptual (domain) Anda. Kode di bawah ini mendefinisikan kelas Departemen.

Kode ini juga mendefinisikan enumerasi DepartmentNames. Secara default, enumerasi berjenis int . Properti Nama pada kelas Departemen adalah jenis DepartmentNames.

Buka file Program.cs dan tempelkan definisi kelas berikut.

public enum DepartmentNames
{
    English,
    Math,
    Economics
}     

public partial class Department
{
    public int DepartmentID { get; set; }
    public DepartmentNames Name { get; set; }
    public decimal Budget { get; set; }
}

 

Tentukan Tipe Turunan DbContext

Selain menentukan entitas, Anda perlu menentukan kelas yang berasal dari DbContext dan mengekspos properti DbSet<TEntity> . Properti DbSet<TEntity> memberi tahu konteks jenis mana yang ingin Anda sertakan dalam model.

Instans jenis turunan DbContext mengelola objek entitas selama run time, yang mencakup mengisi objek dengan data dari database, pelacakan perubahan, dan menyimpan data ke database.

Jenis DbContext dan DbSet didefinisikan dalam rakitan EntityFramework. Kami akan menambahkan referensi ke DLL ini dengan menggunakan paket EntityFramework NuGet.

  1. Di Penjelajah Solusi, klik kanan pada nama proyek.
  2. Pilih Kelola Paket NuGet...
  3. Dalam dialog Kelola Paket NuGet, Pilih tab Online dan pilih paket EntityFramework.
  4. Klik Instal

Perhatikan, bahwa selain perakitan EntityFramework, referensi ke rakitan System.ComponentModel.DataAnnotations dan System.Data.Entity juga ditambahkan.

Di bagian atas file Program.cs, tambahkan pernyataan penggunaan berikut:

using System.Data.Entity;

Dalam Program.cs tambahkan definisi konteks. 

public partial class EnumTestContext : DbContext
{
    public DbSet<Department> Departments { get; set; }
}

 

Pertahankan dan Ambil Data

Buka file Program.cs tempat metode Utama ditentukan. Tambahkan kode berikut ke fungsi Utama. Kode menambahkan objek Departemen baru ke konteks. Kemudian menyimpan data. Kode ini juga menjalankan kueri LINQ yang mengembalikan Departemen di mana namanya adalah DepartmentNames.English.

using (var context = new EnumTestContext())
{
    context.Departments.Add(new Department { Name = DepartmentNames.English });

    context.SaveChanges();

    var department = (from d in context.Departments
                        where d.Name == DepartmentNames.English
                        select d).FirstOrDefault();

    Console.WriteLine(
        "DepartmentID: {0} Name: {1}",
        department.DepartmentID,  
        department.Name);
}

Kompilasi dan jalankan aplikasi. Contoh ini menghasilkan output berikut:

DepartmentID: 1 Name: English

 

Menampilkan Database yang Dihasilkan

Saat Anda menjalankan aplikasi untuk pertama kalinya, Kerangka Kerja Entitas membuat database untuk Anda. Karena kami telah menginstal Visual Studio 2012, database akan dibuat pada instans LocalDB. Secara default, Kerangka Kerja Entitas memberi nama database setelah nama konteks turunan yang sepenuhnya memenuhi syarat (untuk contoh ini adalah EnumCodeFirst.EnumTestContext). Waktu berikutnya database yang ada akan digunakan.  

Perhatikan, bahwa jika Anda membuat perubahan apa pun pada model Anda setelah database dibuat, Anda harus menggunakan Migrasi Pertama Kode untuk memperbarui skema database. Lihat Kode Pertama ke Database Baru untuk contoh penggunaan Migrasi.

Untuk menampilkan database dan data, lakukan hal berikut:

  1. Di menu utama Visual Studio 2012, pilih Tampilkan ->SQL Server Object Explorer.
  2. Jika LocalDB tidak ada dalam daftar server, klik tombol kanan mouse di SQL Server dan pilih Tambahkan SQL Server Gunakan Autentikasi Windows default untuk menyambungkan ke instans LocalDB
  3. Memperluas simpul LocalDB
  4. Buka folder Database untuk melihat database baru dan telusuri ke tabel Departemen Catatan, bahwa Kode Pertama tidak membuat tabel yang memetakan ke jenis enumerasi
  5. Untuk melihat data, klik kanan pada tabel dan pilih Tampilkan Data

Ringkasan

Dalam panduan ini kita melihat cara menggunakan jenis enum dengan Kode Kerangka Kerja Entitas Terlebih Dahulu.