.Net Core Web Api de kullanılan action metotlar belirli http requestleri karşılayarak belirli responselar dönen metotlardır. Bu action metotlarda isteği karşılamak ve parametre geçebilmek için kullanılan FromRoute, FromQuery, FromBody gibi bazı attributelar mevcuttur. FromRoute Nedir ? Aşağıda Id bazlı olarak bir Get isteğini karşılayacak controller örneğini görüyoruz. Aslında bu default...
Single, SingleOrDefault,First,FirstOrDefault,Find Nedir?
EF Core ‘da Single , SingleOrDefault , First , FirstOrDefault , Find , Last ve LastOrDefault nasıl kullanılır ve mantığı nedir aşağıda inceleyelim.
//Yapılan sorguda sade ve sadece tek bir verinin gelmesi amaçlanıyorsa Single ya da SingleOrDefault fonksiyonları kullanılabilir. Tekil bir verinin geleceğinden eminsek single ve singleordefault kullanılır. 1//SingleAsync //Eğer ki, sorgu neticesinde birden fazla veri geliyorsa ya da hiç gelmiyorsa her iki durumda da exception fırlatır. #region Tek Kayıt Geldiğinde //var urun = await context.Urunler.SingleAsync(u => u.Id == 55); -> İşlem başarılı #endregion #region Hiç Kayıt Gelmediğinde //var urun = await context.Urunler.SingleAsync(u => u.Id == 5555); -> Exception fırlatır #endregion #region Çok Kayıt Geldiğinde //var urun = await context.Urunler.SingleAsync(u => u.Id > 55); -> Exception fırlatır 2//SingleOrDefaultAsync //Eğer ki, sorgu neticesinde birden fazla veri geliyorsa exception fırlatır, hiç veri gelmiyorsa null döner. #region Tek Kayıt Geldiğinde //var urun = await context.Urunler.SingleOrDefaultAsync(u => u.Id == 55); -> İşlem başarılı #endregion #region Hiç Kayıt Gelmediğinde //var urun = await context.Urunler.SingleOrDefaultAsync(u => u.Id == 5555); -> Null döner #endregion #region Çok Kayıt Geldiğinde //var urun = await context.Urunler.SingleOrDefaultAsync(u => u.Id > 55); ->Exception fırlatır #endregion ---------- //Yapılan sorguda tek bir verinin gelmesi amaçlanıyorsa First ya da FirstOrDefault fonksiyonları kullanılabilir. Veritabanında birden fazla Mert değerine tekabül eden değerlerden bir tanesini elde etmek istiyorsak kullanılabilir. 3//FirstAsync //Sorgu neticesinde elde edilen verilerden ilkini getirir. Eğer ki hiç veri gelmiyorsa hata fırlatır. #region Tek Kayıt Geldiğinde //var urun = await context.Urunler.FirstAsync(u => u.Id == 55); -> Veriyi getirir #endregion #region Hiç Kayıt Gelmediğinde //var urun = await context.Urunler.FirstAsync(u => u.Id == 5555); -> Exception fırlatır #endregion #region Çok Kayıt Geldiğinde //var urun = await context.Urunler.FirstAsync(u => u.Id > 55); -> Id 55 den büyük bir çok data olduğundan ilk 56 Id li datayı getirir. (gelen kayıtlardan ilki ) 4//FirstOrDefaultAsync //Sorgu neticesinde elde edilen verilerden ilkini getirir. Eğer ki hiç veri gelmiyorsa null değerini döndürür. #region Tek Kayıt Geldiğinde //var urun = await context.Urunler.FirstAsync(u => u.Id == 55); -> Veriyi getirir #endregion #region Hiç Kayıt Gelmediğinde //var urun = await context.Urunler.FirstAsync(u => u.Id == 5555); -> Null döndürür #endregion #region Çok Kayıt Geldiğinde //var urun = await context.Urunler.FirstAsync(u => u.Id > 55); -> Id 55 den büyük bir çok data olduğundan ilk 56 Id li datayı getirir. (gelen kayıtlardan ilki ) 5//FIND //Find fonksiyonu, primary key kolonuna özel hızlı bir şekilde sorgulama yapmamızı sağlayan bir fonksiyondur. //Urun urun = await context.Urunler.FirstOrDefaultAsync(u => u.Id == 55); //Urun urun = await context.Urunler.FindAsync(55); 6//Last //Sorgu neticesinde gelen verilerden en sonuncusunu getirir. Eğer ki hiç veri gelmiyorsa hata fırlatır. OrderBy kullanılması mecburidir. //var urun = await context.Urunler.OrderBy(u => u.Fiyat).LastAsync(u => u.Id > 55); 7//LastOrDefault //Sorgu neticesinde gelen verilerden en sonuncusunu getirir. Eğer ki hiç veri gelmiyorsa null döner. OrderBy kullanılması mecburidir. //var urun = await context.Urunler.OrderBy(u => u.Fiyat).LastOrDefaultAsync(u => u.Id > 55);
ÖNCEKİ KONU
Bir Yorum Yazın
Ziyaretçi Yorumları - 0 Yorum