Mengenal Entity Framework

Sebelum ada .NET 3.5, saya sering menggunakan ADO.NET untuk menyimpan atau mengambil data dari database. Metode didalamnya termasuk untuk membuka koneksi database, membuat DataSet, mengambil atau mengirimkan data ke database, mengonversi data dari DataSet ke objek .NET atau sebaliknya. Hal itu merupakan proses yang cukup rumit dan rawan kesalahan. Microsoft telah menyediakan kerangka kerja yang disebut “Entity Framework” untuk mengotomatisasi semua kegiatan yang terkait dengan basis data. Dalam tulisan ini, kita akan mengenal Entity Framework secara mendasar.

Apa itu Entity Framework?

Entity Framework (disingkat EF) adalah kerangka kerja ORM sumber terbuka (open source) untuk aplikasi .NET yang didukung oleh Microsoft. Ini memungkinkan developer untuk bekerja dengan data menggunakan obyek khusus domain tanpa berfokus pada tabel dan kolom basis data. Dengan Entity Framework, developer dapat bekerja pada tingkat abstraksi yang lebih tinggi ketika mereka berurusan dengan data. Developer dapat membuat dan memelihara aplikasi yang berorientasi data dengan kode yang lebih sedikit dibandingkan dengan aplikasi tradisional.

Definisi Resmi
Entity Framework is an object-relational mapper (O/RM) that enables .NET developers to work with a database using .NET objects. It eliminates the need for most of the data-access code that developers usually need to write.

Arsitektur Entity Framework
Arsitektur Entity Framework

Sesuai gambar di atas, Entity Framework sesuai antara entitas bisnis (kelas domain) dan database. Ini menyimpan data yang disimpan dalam properti entitas bisnis dan juga mengambil data dari database dan mengubahnya menjadi objek entitas bisnis secara otomatis.

Fitur Entity Framework

  • Cross-Platform — EF Core adalah framework cross-platform yang dapat dijalankan di Windows, Mac dan Linux.
  • Modelling — EF menciptakan sebuah EDM (Entity Data Model) berdasarkan entitas POCO (Plain Old CLR Object) dengan properti Get Set pada setiap tipe data.
  • Querying — EF memungkinkan developer untuk menggunakan query LINQ (C# atau VB.NET) untuk mengambil data dari database. Database Provider akan menerjemahkan kueri LINQ ke bahasa kueri basis data. EF juga memungkinkan kita untuk mengeksekusi query SQL secara langsung ke database.
  • Change Tracking — EF melacak perubahan yang terjadi pada instance entitas (nilai properti) yang perlu dikirimkan (perubahan) ke database.
  • Saving — EF mengeksekusi perintah INSERT, UPDATE, dan DELETE ke database berdasarkan perubahan yang terjadi pada setiap entitas saat Anda memanggil metode SaveChanges(). EF juga menyediakan metode asinkronSaveChangesAsync().
  • Concurrency — EF menggunakan Optimistic Concurrency secara default untuk melindungi perubahan overwriting yang dibuat oleh pengguna lain.
  • Transactions — EF melakukan manajemen transaksi otomatis saat mengeksekusi kueri atau menyimpan data dan juga menyediakan opsi untuk menyesuaikan manajemen transaksi.
  • Caching — EF memiliki fitur level caching dimana untuk kueri berulang akan mengembalikan data yang diambil dari cache.
  • Built-in Conventions — EF mengikuti konvensi atas pola pemrograman konfigurasi, dan mencakup seperangkat aturan default yang secara otomatis mengkonfigurasi model EF.
  • Configurations — EF memungkinkan developer untuk mengonfigurasikan model EF dengan menggunakan atribut anotasi data atau Fluent API untuk mengganti konvensi standar.
  • Migrations — EF menyediakan seperangkat perintah migrasi yang dapat dieksekusi di NuGet Package Manager Console atau CLI (Command Line Interface) untuk membuat atau mengelola skema/tabel basis data.
Baca Juga:  Predator Thronos, Pelopor Kursi Gaming Berteknologi Mutakhir

Versi Entity Framework Terbaru

Microsoft memperkenalkan Entity Framework pada tahun 2008 dengan .NET Framework 3.5. Sejak itu, mreka merilis banyak versi Entity Framework. Saat ini, ada dua versi terbaru dari Entity Framework: EF 6 dan EF Core. Tabel dibawah ini menggambarkan perbedaan antara EF 6 dan EF Core.

EF 6 vs EF Core
Tabel perbedaan antara EF 6 vs EF Core.

Riwayat Versi EF 6

Versi EFTahun Rilis.NET Framework
62013.NET 4.0 & .NET 4.5, VS 2012
52012.NET 4.0, VS 2012
4.32011.NET 4.0, VS 2012
4.02010.NET 4.0, VS 2010
1.0 (atau 3.5)2008.NET 3.5 SP1, VS 2008

Riwayat Versi EF Code

Versi EFTahun Rilis.NET Framework
EF Core 2.0August 2017.NET 4.0 & .NET 4.5, VS 2012
EF Core 1.1November 2017.NET 4.0, VS 2012
EF Core 1.0Juni 2017.NET 4.0, VS 2012

Kesimpulan

Entity Framework dapat mempercepat dan mempermudah proses pembangunan sebuah aplikasi desktop atau web ASP.NET. Dilain waktu, saya coba menjelaskan lebih dalam lagi tentang alur kerja dasar saat menggunakan Entity Framework.