Pada artikel sebelumnya (Menggunakan Entity Framework Pada Visual Studio 2010), saya menggunakan Entity Framework (EF) dengan pendekatan code first. Prosesnya dimulai dengan membuat kelas domain yang kemudian secara otomatis membuat tabel di database. Kali ini saya akan mencoba pendekatan database terlebih dahulu. Kondisi. tabel telah dibuat dalam database. Entity Framework akan menghasilkan kelas domain berdasarkan informasi dari tabel. Saya akan menggunakan database MySQL Server
Sebelum mulai menggunakan MySQL di. NET, pertama-tama saya pastikan bahwa Connector/. NET sudah diinstal. Untuk memasang Konektor/. NET, saya bisa memberi tanda centang untuk item tersebut saat menginstal MySQL Server seperti yang terlihat pada gambar berikut
Pasang Konektor/. BERSIH
Saya kemudian membuat tabel di database MySQL dengan perintah SQL sebagai berikut
CREATE DATABASE latihan; GRANT ALL ON latihan.* to steven@localhost; CREATE TABLE latihan.penjualan ( id BIGINT(20) AUTO_INCREMENT PRIMARY KEY, nomor CHAR(5) NOT NULL, tanggal DATE NOT NULL, konsumen VARCHAR(100) NOT NULL, diskon DECIMAL DEFAULT 0 ); CREATE TABLE latihan.itemPenjualan ( id BIGINT(20) AUTO_INCREMENT PRIMARY KEY, namaBarang VARCHAR(200) NOT NULL, jumlah INT NOT NULL, harga DECIMAL(18,2) NOT NULL, penjualanId BIGINT(20) NOT NULL, CONSTRAINT `FK_PENJUALAN_ID` FOREIGN KEY (penjualanId) REFERENCES penjualan(id) );Selanjutnya, saya membuat proyek Aplikasi Konsol baru di Visual Studio 2010. Saya kemudian memilih menu Proyek, Kelola Paket NuGet.. untuk menggunakan versi terbaru Kerangka Entitas dalam proyek ini
Setelah memastikan Entity Framework sudah terpasang, saya memilih klik kanan nama project dan pilih menu Add New Item. Pada dialog yang muncul, saya pilih Data, ADO. Model Data Entitas .NET seperti yang terlihat pada gambar berikut
Buat model baru
Saya mengisi nama model dengan TransactionModel dan mengklik tombol Add. Pada dialog yang muncul, saya pilih Generate from database dan klik tombol Next seperti terlihat pada gambar berikut
Melakukan reverse engineering dari database
Visual Studio akan menampilkan dialog Choose Your Data Connection. Saya kemudian mengklik tombol Koneksi Baru…. Dialog Connection Properties akan muncul. Saya kemudian mengklik tombol Ubah. pada Sumber data untuk memilih Database MySQL (Penyedia Data MySQL). Saya kemudian mengisi informasi database seperti yang terlihat pada gambar berikut
Menambahkan koneksi ke MySQL Server
Setelah mengklik tombol Test Connection untuk memastikan koneksi database sudah bisa dilakukan, saya kemudian mengklik tombol OK. Saya memilih Ya, sertakan data sensitif di string koneksi. Selain itu, di bagian Simpan pengaturan koneksi entitas di Aplikasi. Config as, saya isi dengan TransactionContext. Setelah selesai, saya klik tombol Next
Saya centang semua tabel yang ada, isikan nama namespacenya dan klik tombol Finish untuk selesai, seperti yang terlihat pada gambar berikut
Pilih tabel yang akan direkayasa balik
Visual Studio 2010 akan menampilkan diagram seperti yang terlihat pada gambar berikut
Model hasil rekayasa terbalik
Saya melakukan sedikit perubahan nama pada kedua entitas sehingga dimulai dengan huruf kapital. Caranya klik pada entitas dan ubah properti Entity Set Name dan Name pada jendela Properties
Kode program yang dihasilkan (kelas konteks dan entitas) terletak di file yang dapat dilihat di
Kode program dihasilkan berdasarkan isi database
Setelah ini, saya dapat menggunakan operasi Entity Framework seperti sebelumnya. Misalnya, kode program berikut akan menyimpan objek ke dalam database
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LatihanOOP { class Program { static void Main(string[] args) { using (var db = new TransaksiContext()) { Penjualan p1 = new Penjualan() { nomor = "FJ001", tanggal = new DateTime(2014, 1, 10), konsumen = "Solid Snake", }; p1.itempenjualan.Add(new ItemPenjualan() { namaBarang = "BRG1", jumlah = 1, harga = 100 }); p1.itempenjualan.Add(new ItemPenjualan() { namaBarang = "BRG2", jumlah = 5, harga = 20 }); db.Penjualan.AddObject(p1); db.SaveChanges(); } } } } _Setelah program diatas dijalankan maka isi tabel pada database akan terlihat seperti gambar berikut