Pengertian Entity Framework Core dan Cara menggunakannya (Dalam C# dan menggunakan Database)
Assalamu‘alaikum wr. wb.
Hello guys! Jika sebelumnya kita telah menggunakan Database SQL dalam Bahasa Java di NetBeans, sekarang waktunya kita menggunakan Database (SQL) dalam Bahasa C# dengan menggunakan Entity Framework Core.
Sumber : Entityframeworktutorial.net, Geekinsta.com, C-sharpcorner.com (Entity Framework using C#), C-sharpcorner.com (Using MySQL With Entity Framework), Docs.Microsoft.com, Learnentityframeworkcore.com, Tutorallprogramming.blogspot.com
APA ITU ENTITY FRAMEWORK CORE?
A. Pengertian Entity Framework
Kita biasa membuka koneksi ke database, membuat DataSet untuk mengambil atau mengirimkan data ke database, mengubah data dari DataSet ke objek .NET atau sebaliknya untuk menerapkan aturan bisnis. Ini adalah proses yang rumit dan rawan kesalahan. Microsoft telah menyediakan kerangka kerja yang disebut "Entity Framework" untuk mengotomatiskan semua aktivitas terkait basis data ini untuk aplikasi Anda.
Entity Framework adalah kerangka kerja ORM sumber terbuka untuk aplikasi .NET yang didukung oleh Microsoft. Ini memungkinkan pengembang untuk bekerja dengan data menggunakan objek kelas khusus domain tanpa berfokus pada tabel dan kolom database yang mendasari tempat data ini disimpan. Dengan Entity Framework, pengembang dapat bekerja pada tingkat abstraksi yang lebih tinggi ketika mereka berurusan dengan data, dan dapat membuat dan memelihara aplikasi berorientasi data dengan kode yang lebih sedikit dibandingkan dengan aplikasi tradisional.
Definisi Resmi yaitu “Entity Framework adalah object-relational mapper (O/RM) yang memungkinkan pengembang .NET untuk bekerja dengan database menggunakan objek .NET. Ini menghilangkan kebutuhan untuk sebagian besar kode akses data yang biasanya perlu ditulis oleh pengembang.”
Gambar berikut mengilustrasikan dimana Entity Framework cocok dengan Aplikasi Anda.
Sesuai gambar di atas, Entity Framework cocok antara entitas bisnis (kelas domain) dan database. Ini menyimpan data yang disimpan di properti entitas bisnis dan juga mengambil data dari database dan mengubahnya menjadi objek entitas bisnis secara otomatis.
B. Fitur-fitur pada Entity Framework (EF)
Adapun beberapa Fitur pada Entity Framework (EF) yaitu :
- Lintas Platform (Cross-platform) : EF Core adalah kerangka kerja lintas platform yang dapat berjalan di Windows, Linux, dan Mac.
- Pemodelan (Modelling) : EF (Entity Framework) membuat EDM (Entity Data Model) berdasarkan entitas POCO (Plain Old CLR Object) dengan properti get/set dari tipe data yang berbeda. Ini menggunakan model ini saat menanyakan atau menyimpan data entitas ke database yang mendasarinya.
- Querying : EF memungkinkan kita untuk menggunakan Query LINQ (C# / VB.NET) untuk mengambil data dari database yang mendasarinya. Penyedia basis data akan menerjemahkan kueri LINQ ini ke bahasa kueri khusus basis data (mis. SQL untuk basis data relasional). EF juga memungkinkan kita untuk mengeksekusi query SQL mentah langsung ke database.
- Pelacakan Perubahan (Change Tracking) : EF melacak perubahan yang terjadi pada instance entitas Anda (Nilai properti) yang perlu dikirimkan ke database.
- Menyimpan (Saving) : EF mengeksekusi perintah INSERT, UPDATE, dan DELETE ke database berdasarkan perubahan yang terjadi pada entitas Anda saat Anda memanggil metode SaveChanges(). EF juga menyediakan metode SaveChangesAsync() asinkron.
- Concurrency : EF menggunakan Optimistic Concurrency secara default untuk melindungi penimpaan perubahan yang dibuat oleh pengguna lain sejak data diambil dari database.
- Transaksi : EF melakukan manajemen transaksi otomatis saat menanyakan atau menyimpan data. Ini juga menyediakan opsi untuk menyesuaikan manajemen transaksi.
- Caching : EF menyertakan caching tingkat pertama di luar kotak. Jadi, kueri berulang akan mengembalikan data dari cache alih-alih mengenai database.
- Konvensi Bawaan (Built-in Conventions) : EF mengikuti konvensi pola pemrograman konfigurasi, dan menyertakan seperangkat aturan default yang secara otomatis mengonfigurasi model EF.
- Konfigurasi : EF memungkinkan kita untuk mengonfigurasi model EF dengan menggunakan atribut anotasi data atau Fluent API untuk mengesampingkan konvensi default.
- Migrasi : EF menyediakan satu set perintah migrasi yang dapat dijalankan pada NuGet Package Manager Console atau Antarmuka Baris Perintah untuk membuat atau mengelola Skema basis data yang mendasarinya.
C. Versi Terbaru pada Entity Framework
Microsoft memperkenalkan Entity Framework pada tahun 2008 dengan .NET Framework 3.5. Sejak itu, ia merilis banyak versi Entity Framework. Saat ini, ada dua versi terbaru Entity Framework: EF 6 dan EF Core. Tabel berikut mencantumkan perbedaan penting antara EF 6 dan EF Core.
PERSIAPAN ENTITY FRAMEWORK
Sumber : C-sharpcorner.com, Docs.Microsoft.com, Learnentityframeworkcore.com, dan Tutorallprogramming.blogspot.com
A. Pengertian Entity Framework di Project Visual Studio beserta dengan Cara-caranya
Sebelum Anda melihat beberapa contoh penggunaan EF, Anda harus merujuknya dalam proyek kami, yaitu, membuat perpustakaan dapat diakses oleh solusi. Kemudian kita akan membuat proyek baru di Visual Studio, pilih template yang diperlukan (dalam contoh, seperti yang diharapkan, akan mengurutkan C # WinForms). Selanjutnya simpan solusinya (penting untuk menghindari alert ditambahkan EF) lalu kita buka manage paket Nuget.
Di dalamnya, kita akan mengemas kerangka kerja entitas dan itu hanya akan menambah solusi kami, menggunakan tombol "Instal". Setelah selesai, kita akan melihat bagaimana salah satu referensi proyek dimasukkan ke yang terkait dengan EF.
Sekarang, kita siap untuk menggunakan potensi ORM kami, sejauh menyangkut pengembangan. Kita juga akan melihat bagaimana melakukan koneksi database awal dan kelas pemodelan, mengikuti dua paradigma yang disebutkan di atas.
B. Membuat Aplikasi .NET Core Console di VS Code
Jika Anda memiliki versi Visual Studio yang mendukung .Net Core (2017 atau lebih tinggi), Anda dapat menggunakan Templat Proyek (Project Template) untuk membuat aplikasi konsol .Net Core baru. Atau, Anda dapat menggunakan alat baris perintah untuk membuat dan membangun proyek. Anda dapat menggunakan Terminal yang terintegrasi ke dalam Visual Studio Code untuk ini.
Buatlah folder apapun, misalnya EFCore dan kemudian buka di Visual Studio Code (VS Code). Selanjutnya, untuk menjalankan Terminal di VS Code, silakan klik di bagian "Terminal --> New Terminal" atau Tekan
Ctrl + '
untuk membuka Jendela Terminal baru dan kemudian ketik perintah berikut (Jika memakai SQL Server) :dotnet new console
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
Dan jika memakai MySQL, maka ganti saja menjadi :
dotnet new console
dotnet add package MySql.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet tool install --global dotnet-ef
Kemudian ulangi lagi perintah diatas. Setelah itu akan seperti ini :
Ini menghasilkan Aplikasi Konsol Minimal (Minimal Console Application) :
MEMBUAT MODEL PROGRAM
A. Menginstall Package NuGet Gallery di VS Code
Sebelum itu, marilah kita menginstall Package NuGet Gallery di VS Code terlebih dahulu sebelum membuat program. Caranya adalah klik di Tombol Extentions lalu carilah "NuGet Gallery", kemudian Install dan tunggu beberapa detik.
Kemudian, kita akan membuka Fitur NuGet Gallery melalui Commands. Caranya yaitu klik di bagian "Help --> Show All Commands" atau
Ctrl + Shift + P
.Kemudian, Install lagi Ekstensi Pomelo.Entity.FrameworkCore.MySql.
C. Membuat Kode Program
Dan inilah Contoh dari Proses CRUD dari Program Entity Framework Core :
using System;using Microsoft.EntityFrameworkCore;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace EFCore{public class EFDatabase{public static void Start(){var optionsBuilder = new DbContextOptionsBuilder<MyDbDataCtx>();optionsBuilder.UseMySQL(@"server=localhost;port=8080;database=ABCDEF;uid=root");var context = new MyDbDataCtx(optionsBuilder.Options);context.Database.EnsureCreated();// InsertEFCore.Models.Mahasiswa mahasiswa = newEFCore.Models.Mahasiswa();mahasiswa.Nama = "Inzaghi Posuma";mahasiswa.Email = "inzaghi.posuma@student.pradita.ac.id";context.Mahasiswas.Add(mahasiswa);context.SaveChanges();// Updatevar mhs = context.Mahasiswas.FirstOrDefault(m => m.ID == 2);mhs.Nama = "Bryan Elmer";mhs.Email = "bryan.elmer@student.pradita.ac.id";context.SaveChanges();// Selectvar listMahasiswa = context.Mahasiswas.Where(m => m.Nama.Contains("Har")).ToList();var mhssStartwith = listMahasiswa.Where(m => m.Nama.StartsWith("Ha"));var mhssEndwith = listMahasiswa.Where(m => m.Nama.EndsWith("o"));// Deletevar mhs = context.Mahasiswas.FirstOrDefault(m => m.ID == 2);context.Mahasiswas.Remove(mhs);context.SaveChanges();}}}
VIDEO
Untuk melihat Contoh-contoh dari Entity Framework Core, lihatlah Video-video YouTube di bawah ini.
Mohon maaf apabila ada sedikit kekurangan, dikarenakan Laptop saya tidak bisa menjalankan Visual Studio, sehingga saya hanya bisa menggunakan Visual Studio Code (VS Code).
Terima Kasih šššš :)
Wassalamu‘alaikum wr. wb.