Terokai pelbagai pendekatan untuk model entiti dalam Entity Framework

Entity Framework mempermudah akses data dalam aplikasi anda dengan membolehkan anda menulis kod untuk menjalankan operasi CRUD (Buat, Baca, Kemas kini dan Padam) tanpa perlu berinteraksi dengan penyedia pangkalan data yang mendasari secara langsung. Terdapat tiga pendekatan untuk memodelkan entiti anda dalam Entity Framework: Code First, Model First, dan Database First. Artikel ini membincangkan ketiga-tiga pendekatan ini dan kebaikan dan keburukannya.

Apakah Kerangka Kerja Entiti? Mengapa semua gembar-gembur?

Microsoft Entity Framework adalah ORM yang diperluas yang membantu anda mengasingkan model objek aplikasi anda dari model data. Ia adalah rangka kerja sumber terbuka untuk ADO.Net dan dimasukkan sebagai sebahagian daripada .Net Framework. Dengan menggunakan alat ORM, anda boleh memusatkan perhatian pada logik perniagaan aplikasi dan menyimpan data dalam pangkalan data dengan lebih kurang kod. Anda boleh memanfaatkan ORM untuk menukar data antara sistem jenis yang tidak serasi - anda boleh menyimpan objek domain anda ke dalam pangkalan data yang mendasari tanpa perlu risau tentang selok-belok dalaman bagaimana data tersebut sebenarnya disimpan. Entity Framework adalah ORM dewasa dari Microsoft dan boleh digunakan dengan pelbagai pangkalan data.

Pada bahagian-bahagian yang berikut, kami akan meneroka setiap tiga pendekatan untuk memodelkan entiti menggunakan Entity Framework.

Kod Pertama

Pendekatan Code First membantu anda membuat entiti dalam aplikasi anda dengan memberi tumpuan kepada keperluan domain. Pada dasarnya, anda boleh mengikuti Domain Driven Design (DDD) menggunakan pendekatan ini. Setelah entiti anda ditentukan dan konfigurasi ditentukan, anda boleh membuat pangkalan data dengan menggunakan kedua-duanya. Pendekatan Code First memberi anda lebih banyak kawalan ke atas kod anda - anda tidak perlu lagi menggunakan kod yang dihasilkan secara automatik. Saya suka pendekatan ini kerana ini memberi anda banyak fleksibiliti dan kawalan. Sekiranya anda mempunyai kelas domain yang siap, saya selalu memilih pendekatan ini kerana anda boleh membuat pangkalan data anda dengan mudah dari kelas domain.

Kelemahan pendekatan ini adalah bahawa sebarang perubahan pada skema pangkalan data yang mendasari akan hilang; dalam pendekatan ini kod anda menentukan dan membuat pangkalan data. Pendekatan Code First membolehkan anda menggunakan Entity Framework dan menentukan model entiti tanpa fail pereka atau XML. Anda boleh menggunakan pendekatan POCO (Plain Old CLR Objects) untuk menentukan model dan menghasilkan pangkalan data anda.

Dalam pendekatan ini, anda biasanya akan membuat kelas entiti. Inilah contohnya; kelas entiti khas diberikan di bawah.

 public class Product

   {

      public int ProductId { get; set; }

      public string ProductName { get; set; }

      public float Price { get; set; }

   }

Seterusnya, anda harus menentukan konteks data khusus dengan memperluas kelas DbContext seperti yang ditunjukkan di bawah.

public class Context : DbContext

   {

      public DbSet Products { get; set; }

   }

Terakhir, anda harus menentukan rentetan sambungan dalam fail konfigurasi. Anda sudah selesai!

Pangkalan Data Pertama

Anda boleh menggunakan pendekatan Pangkalan Data Pertama jika pangkalan data sudah dirancang dan siap. Dalam pendekatan ini, Model Data Entiti (EDM) dibuat dari pangkalan data yang mendasarinya. Sebagai contoh, anda menggunakan pendekatan pangkalan data pertama ketika anda menghasilkan fail edmx di Visual Studio IDE dari pangkalan data. Perubahan manual ke pangkalan data dapat dilakukan dengan mudah dan anda sentiasa dapat mengemas kini EDM jika perlu (contohnya, jika skema pangkalan data yang mendasar berubah). Untuk melakukan ini, cukup kemas kini EDM dari pangkalan data di Visual Studio IDE.

Model Pertama

Dalam pendekatan Model First, anda boleh membuat EDM terlebih dahulu, kemudian menjana pangkalan data daripadanya. Anda biasanya akan membuat EDM kosong menggunakan Wizard Model Data Entiti di Visual Studio, menentukan entiti dan hubungannya di Visual Studio, kemudian menjana pangkalan data dari model yang ditentukan ini. Anda boleh membuat entiti dengan mudah dan menentukan hubungan dan persatuan mereka dalam pereka di Visual Studio. Anda juga boleh menentukan harta Kunci dan jenis data untuk harta untuk entiti anda menggunakan pereka. Anda boleh menggunakan kelas separa untuk melaksanakan ciri tambahan di entiti anda.

OK, tetapi bilakah anda harus menggunakan pendekatan Model First? Sekiranya kelas domain atau pangkalan data tidak siap dan anda lebih suka menentukan model data menggunakan perancang visual, pendekatan ini sesuai untuk anda. Namun, seperti dalam pendekatan Code First, dalam pendekatan Model First manual perubahan pada pangkalan data akan hilang ketika model mendefinisikan pangkalan data.