Bagikan melalui


Dukungan Enum - Desainer EF

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 Perancang Kerangka Kerja Entitas. Ini juga menunjukkan cara menggunakan enum dalam kueri LINQ.

Panduan ini akan menggunakan Model First untuk membuat database baru, tetapi EF Designer juga dapat digunakan dengan alur kerja Database First 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 Perancang Kerangka Kerja Entitas. 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 EnumEFDesigner sebagai nama proyek dan klik OK

Membuat Model Baru menggunakan Desainer EF

  1. Klik kanan nama proyek di Penjelajah Solusi, arahkan ke Tambahkan, lalu klik Item Baru
  2. Pilih Data dari menu sebelah kiri lalu pilih ADO.NET Model Data Entitas di panel Templat
  3. Masukkan EnumTestModel.edmx untuk nama file, lalu klik Tambahkan
  4. Pada halaman Wizard Model Data Entitas, pilih Model Kosong dalam kotak dialog Pilih Konten Model
  5. Klik Selesai

Perancang Entitas, yang menyediakan permukaan desain untuk mengedit model Anda, ditampilkan.

Wizard melakukan tindakan berikut:

  • Menghasilkan file EnumTestModel.edmx yang menentukan model konseptual, model penyimpanan, dan pemetaan di antaranya. Mengatur properti Pemrosesan Artefak Metadata dari file .edmx ke Sematkan di Output Assembly sehingga file metadata yang dihasilkan disematkan ke dalam rakitan.
  • Menambahkan referensi ke rakitan berikut: EntityFramework, System.ComponentModel.DataAnnotations, dan System.Data.Entity.
  • Membuat file EnumTestModel.tt dan EnumTestModel.Context.tt dan menambahkannya di bawah file .edmx. File templat T4 ini menghasilkan kode yang menentukan jenis turunan DbContext dan jenis POCO yang memetakan ke entitas dalam model .edmx.

Menambahkan Jenis Entitas Baru

  1. Klik kanan area kosong dari permukaan desain, pilih Tambahkan -> Entitas, kotak dialog Entitas Baru muncul
  2. Tentukan Departemen untuk nama jenis dan tentukan DepartmentID untuk nama properti kunci, biarkan jenisnya sebagai Int32
  3. Klik OK
  4. Klik kanan entitas dan pilih Tambahkan Baru -> Properti Skalar
  5. Ganti nama properti baru menjadi Nama
  6. Ubah tipe properti baru menjadi Int32 (secara default, properti baru berjenis String) Untuk mengubah jenis, buka jendela Properti dan ubah properti Tipe menjadi Int32
  7. Tambahkan properti skalar lain dan ganti namanya menjadi Anggaran, ubah jenisnya menjadi Desimal

Menambahkan Jenis Enum

  1. Di Perancang Kerangka Kerja Entitas, klik kanan properti Nama, pilih Konversi ke enum

    Convert To Enum

  2. Dalam kotak dialog Tambahkan Enum ketik DepartmentNames untuk Nama Jenis Enum, ubah Tipe Yang Mendasar ke Int32, lalu tambahkan anggota berikut ke jenis: Bahasa Inggris, Matematika, dan Ekonomi

    Add Enum Type

  3. Tekan OK

  4. Menyimpan model dan membangun proyek

    Catatan

    Saat Anda membuat, peringatan tentang entitas dan asosiasi yang tidak dipetakan mungkin muncul di Daftar Kesalahan. Anda dapat mengabaikan peringatan ini karena setelah kami memilih untuk menghasilkan database dari model, kesalahan akan hilang.

Jika Anda melihat jendela Properti, Anda akan melihat bahwa jenis properti Nama diubah ke DepartmentNames dan jenis enum yang baru ditambahkan ditambahkan ke daftar jenis.

Jika Anda beralih ke jendela Browser Model, Anda akan melihat bahwa jenis juga ditambahkan ke node Jenis Enum.

Model Browser

Catatan

Anda juga dapat menambahkan jenis enum baru dari jendela ini dengan mengklik tombol kanan mouse dan memilih Tambahkan Jenis Enum. Setelah jenis dibuat, jenis akan muncul dalam daftar jenis dan Anda akan dapat mengaitkan dengan properti

Hasilkan Database dari Model

Sekarang kita dapat menghasilkan database yang didasarkan pada model.

  1. Klik kanan ruang kosong pada permukaan Perancang Entitas dan pilih Hasilkan Database dari Model
  2. Kotak Dialog Pilih Data Koneksi ion Anda dari Panduan Buat Database ditampilkan Klik tombol Koneksi ion Baru Tentukan (localdb)\mssqllocaldb untuk nama server dan EnumTest untuk database dan klik OK
  3. Dialog yang menanyakan apakah Anda ingin membuat database baru akan muncul, klik Ya.
  4. Klik Berikutnya dan Wizard Buat Database menghasilkan bahasa definisi data (DDL) untuk membuat database DDL yang dihasilkan ditampilkan dalam Ringkasan dan Pengaturan Catatan Kotak Dialog, bahwa DDL tidak berisi definisi untuk tabel yang memetakan ke jenis enumerasi
  5. Klik Selesai Mengklik Selesai tidak menjalankan skrip DDL.
  6. Wizard Buat Database melakukan hal berikut: Membuka EnumTest.edmx.sql di Editor T-SQL Menghasilkan skema penyimpanan dan bagian pemetaan file EDMX Menambahkan informasi string koneksi ke file App.config
  7. Klik tombol kanan mouse di Editor T-SQL dan pilih Dialog Jalankan Koneksi ke Server muncul, masukkan informasi koneksi dari langkah 2 dan klik Koneksi
  8. Untuk melihat skema yang dihasilkan, klik kanan pada nama database di SQL Server Object Explorer dan pilih Refresh

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 EnumTestModelContainer())
{
    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} and Name: {1}",
        department.DepartmentID,  
        department.Name);
}

Kompilasi dan jalankan aplikasi. Contoh ini menghasilkan output berikut:

DepartmentID: 1 Name: English

Untuk menampilkan data dalam database, klik kanan pada nama database di SQL Server Object Explorer dan pilih Refresh. Kemudian, klik tombol kanan mouse pada tabel dan pilih Tampilkan Data.

Ringkasan

Dalam panduan ini kita melihat cara memetakan jenis enum menggunakan Perancang Kerangka Kerja Entitas dan cara menggunakan enum dalam kode.