1.Projection Queries (Seçme Sorguları)

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);
 }