Entity Framework Core: Query dengan LINQ
Penjelasan
EF Core memakai LINQ (Language Integrated Query) untuk query database — sintaksnya method chaining mirip query builder framework lain (Where(), OrderBy()), tapi LINQ adalah FITUR BAHASA C# itu sendiri (bukan cuma milik EF Core), jadi bisa dipakai juga untuk query koleksi biasa di memori, bukan cuma database.
Contoh Konsep
// Ambil semua produk dengan harga di atas 50000, urutkan dari termahal
var produkMahal = await context.Produk
.Where(p => p.Harga > 50000)
.OrderByDescending(p => p.Harga)
.ToListAsync();
// Ambil satu produk pertama yang namanya mengandung "Kaos"
var produk = await context.Produk
.FirstOrDefaultAsync(p => p.Nama.Contains("Kaos"));
// Hitung jumlah produk yang stoknya habis
var jumlahHabis = await context.Produk.CountAsync(p => p.Stok == 0);
Praktikum
Tulis query LINQ yang mengambil semua Artikel yang Judul-nya mengandung kata "ASP.NET" (Contains), diurutkan dari yang terbaru (OrderByDescending berdasarkan CreatedAt).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Method LINQ yang berakhiran Async (ToListAsync(), FirstOrDefaultAsync(), CountAsync()) HARUS dipanggil dengan await dan HANYA tersedia untuk query ke DATABASE lewat EF Core — untuk query koleksi biasa di memori (List<T> biasa), pakai versi TANPA Async (ToList(), FirstOrDefault()) karena tidak melibatkan I/O.