Jelajahi berbagai pendekatan untuk model entitas dalam Entity Framework

Entity Framework menyederhanakan akses data dalam aplikasi Anda dengan memungkinkan Anda menulis kode untuk melakukan operasi CRUD (Buat, Baca, Perbarui, dan Hapus) tanpa perlu berinteraksi dengan penyedia database yang mendasarinya secara langsung. Ada tiga pendekatan untuk membuat model entitas Anda dalam Entity Framework: Code First, Model First, dan Database First. Artikel ini membahas ketiga pendekatan ini serta pro dan kontranya.

Apa itu Entity Framework? Mengapa semua hype?

Kerangka Kerja Entitas Microsoft adalah ORM yang diperluas yang membantu Anda mengisolasi model objek aplikasi Anda dari model data. Ini adalah kerangka ORM open source untuk ADO.Net dan disertakan sebagai bagian dari .Net Framework. Dalam menggunakan alat ORM, Anda dapat fokus pada logika bisnis aplikasi dan menyimpan data dalam database dengan kode yang jauh lebih sedikit. Anda dapat memanfaatkan ORM untuk mengonversi data di antara sistem jenis yang tidak kompatibel - Anda dapat menyimpan objek domain Anda ke database yang mendasarinya tanpa harus mengkhawatirkan kerumitan internal tentang bagaimana data sebenarnya disimpan. Kerangka Kerja Entitas adalah ORM matang dari Microsoft dan dapat digunakan dengan berbagai macam database.

Pada bagian selanjutnya, kita akan mengeksplorasi masing-masing dari tiga pendekatan untuk memodelkan entitas menggunakan Entity Framework.

Kode Pertama

Pendekatan Code First membantu Anda membuat entitas dalam aplikasi Anda dengan berfokus pada persyaratan domain. Intinya, Anda dapat mengikuti Domain Driven Design (DDD) menggunakan pendekatan ini. Setelah entitas Anda ditentukan dan konfigurasinya ditentukan, Anda dapat membuat database dengan cepat menggunakan keduanya. Pendekatan Kode Pertama memberi Anda lebih banyak kontrol atas kode Anda - Anda tidak perlu lagi bekerja dengan kode yang dibuat secara otomatis. Saya suka pendekatan ini karena ini memberi Anda banyak fleksibilitas dan kontrol. Jika Anda sudah menyiapkan kelas domain, saya akan selalu lebih suka pendekatan ini karena Anda dapat dengan mudah membuat database dari kelas domain.

Kelemahan dari pendekatan ini adalah bahwa setiap perubahan pada skema database yang mendasarinya akan hilang; dalam pendekatan ini kode Anda mendefinisikan dan membuat database. Pendekatan Kode Pertama memungkinkan Anda untuk menggunakan Entity Framework dan menentukan model entitas tanpa file desainer atau XML. Anda dapat menggunakan pendekatan POCO (Objek CLR Biasa Biasa) untuk menentukan model dan membuat database Anda.

Dalam pendekatan ini Anda biasanya akan membuat kelas entitas. Berikut contohnya; kelas entitas khas diberikan di bawah ini.

 public class Product

   {

      public int ProductId { get; set; }

      public string ProductName { get; set; }

      public float Price { get; set; }

   }

Selanjutnya, Anda harus menentukan konteks data kustom dengan memperluas kelas DbContext seperti yang ditunjukkan di bawah ini.

public class Context : DbContext

   {

      public DbSet Products { get; set; }

   }

Terakhir, Anda harus menentukan string koneksi di file konfigurasi. Kamu selesai!

Database Pertama

Anda bisa menggunakan pendekatan Database First jika database sudah dirancang dan siap. Dalam pendekatan ini, Model Data Entitas (EDM) dibuat dari database yang mendasarinya. Sebagai contoh, Anda menggunakan pendekatan pertama database saat Anda membuat file edmx di Visual Studio IDE dari database. Perubahan manual ke database dimungkinkan dengan mudah dan Anda selalu dapat memperbarui EDM jika perlu (misalnya, jika skema database yang mendasarinya berubah). Untuk melakukannya, cukup perbarui EDM dari database di Visual Studio IDE.

Model Pertama

Dalam pendekatan Model First, Anda dapat membuat EDM terlebih dahulu, lalu menghasilkan database darinya. Anda biasanya akan membuat EDM kosong menggunakan Panduan Model Data Entitas di Visual Studio, menentukan entitas dan hubungannya di Visual Studio, lalu membuat database dari model yang ditentukan ini. Anda dapat dengan mudah membuat entitas dan menentukan hubungan dan asosiasinya di desainer di Visual Studio. Anda juga dapat menentukan properti Key dan tipe data untuk properti entitas Anda menggunakan desainer. Anda dapat menggunakan kelas parsial untuk mengimplementasikan fitur tambahan di entitas Anda.

Oke, tetapi kapan Anda harus menggunakan pendekatan Model First? Nah, jika baik kelas domain maupun database belum siap dan Anda lebih suka menentukan model data menggunakan desainer visual, pendekatan ini cocok untuk Anda. Namun, seperti dalam pendekatan Kode Pertama, dalam pendekatan Model Pertama perubahan manual ke database akan hilang saat model mendefinisikan database.