LINQ ile Join&Group ve ilk kaydı seçme sorgusu

LINQ ile Join Group ve ilk kaydı seçme sorgusu

İki tabloyu join ile birleştirip, bir alana göre gruplama ve diğer tablodan ilk kaydı seçme sorgusu

Örnek üzerinden gidelim.

Elimizde 2 tablo olsun.

Yazarlar ve yazarların yazıları.

Şimdi, her bir yazarın son yazısını Linq sorgusu ile çekelim:

var yazilar = (from p in db.yazaryazilar
                group p by p.YazarId into grp
                let max = grp.Max(g => g.Id)
                from p in grp
                join y in db.yazarlar on p.YazarId equals y.Id
                where p.Id == max
                orderby p.Id descending
                select new
                {
                    Id = p.Id,
                    Baslik = p.Baslik,
                    Foto = y.Foto,
                    Yazar = y.AdSoyad
                }).Take(10);

Yazının id ve baslik bilgisini, yazarların da foto ve ad soyad bilgilerini bu sorguyla çekebiliriz.

Siz bu sorguyla oynayarak; daha değişik sonuçlar elde edebilirsiniz. Örneğin, okunma sayılarına göre yazarların yazılarını getirebilirsiniz.

Kolay gelsin.