PROJECTION SORGULARI
List<MyObject> myList = new List<MyObject>
{
new MyObject{Name = "cagatay",Surname = "kiziltan",Number = 12345,Country = "Türkiye"},
new MyObject{Name = "kuthay",Surname = "gümüş",Number = 23456,Country = "Yunanistan"},
new MyObject{Name = "ömer",Surname = "korkmaz",Number = 3454,Country = "Türkiye"},
new MyObject{Name = "yasin",Surname = "karakaşlar",Number = 12345,Country = "Türkiye"},
new MyObject{Name = "görkem",Surname = "sirin",Number = 12345,Country = "Rusya"},
};
1. Select metodu
Select ifadesi ile elimizde bulunan bir listeden seçim yapabiliriz. Aşağıdaki ifade listenin tamamını seçer.
var result = myList.Select(x => x).ToList();
İstersek select ile seçim yaparken dönüş tipini olarak yeni bir nesne yaratıp propertyleri bu nesne üzerinden döndürebiliriz.
var result = myList.Select(y => new {ad = y.Name, soyad = y.Surname}).ToList();
2. Selectmany metodu
Örnek 1: Chinhook veritabanında her bir şarkının bir türü vardır. Her bir şarkının adı ile birlikte türünün adını veren linQ sorgusunu yazınız.
var sarkiTurleri = from a in context.Track from g in context.Genres where a.genreId == a.GenreId select new{ SarkiAdi = a.Name, TurAdi = g.Name}; var result = context.Genres.SelectMany(c => c.Tracks , (c,o) => new {SarkıAdı = o.Name, Turu = c.Name}); foreach(var x in sarkıTürleri) { Console.WriteLine(“Sarkı adi : {0} – Türü- {0}”, x.SarkiAdi,x.TurAdi); }