Linq To SQL Komutlarınından ORDER BY , LIKE , DISTINCT , TAKE , SKIP ile örnekler yapacağız.
Komutlarımızı yazmadan once kullanacağımız nesneleri içeren DataContext nesnesinden bir tane tanımlıyoruz.
DataClassesNORTHWNDDataContext myContext = new DataClassesNORTHWNDDataContext();
Order By Komutu
Veritabanından çektiğimiz kayıtları (sonuç kümesini ) sıralamak için ORDER BY anahtar kelimesini kullanırız. Bu sıralama belirtilen kolona göre yapılır. Ve varsayılan olarak artan (küçükten büyüğe) sıradadır.
Öncelikle Linq to sql ile küçükten büyüge siralama islemini inceleyelim.
Query Syntax
var category= from k in myContext.Categories orderby k.CategoryID ascending select new { k.CategoryID, k.CategoryName }; dataGridView1.DataSource = category;
Lambda Syntax
var category = myContext.Categories.OrderBy(k => k.CategoryID).Select(p => new { p.CategoryID, p.CategoryName }); dataGridView1.DataSource = category;
Simdi Linq to sql ile büyükten küçüge siralama islemini inceleyelim.
Query Syntax
var category = from k in myContext.Categories orderby k.CategoryID descending select new { k.CategoryID, k.CategoryName };
Lambda Syntax
var category = myContext.Categories.OrderByDescending(k => k.CategoryID).Select(p => new { p.CategoryID, p.CategoryName }); dataGridView1.DataSource = category;
Like Komutu
Like oparetörü bize karakter içinde istediğimiz karakter dizisini aramamızı sağlar.
Verilen kriter ile başlayan. StartsWith(“Con”)
Query Syntax
var category = from k in myContext.Categories where k.CategoryName.StartsWith("Con") orderby k.CategoryName select new { k.CategoryID, k.CategoryName, k.Description };
Lambda Syntax
var category = myContext.Categories.Where(k=>k.CategoryName.StartsWith("Con")).OrderBy(k => k.CategoryID).Select(p => new { p.CategoryID, p.CategoryName , p.Description });
Verilen kriter ile biten. EndsWith(“als”)
Query Syntax
var category = from k in myContext.Categories where k.CategoryName.EndsWith("als") orderby k.CategoryName select new { k.CategoryID, k.CategoryName, k.Description };
Lambda Syntax
var category = myContext.Categories.Where(k=>k.CategoryName.EndsWith("als")).OrderBy(k => k.CategoryID).Select(p => new { p.CategoryID, p.CategoryName , p.Description });
Verilen kriter ile içerisinde geçen. Contains(“fo”)
Query Syntax
var category = from k in myContext.Categories where k.CategoryName.Contains("fo") orderby k.CategoryName select new { k.CategoryID, k.CategoryName, k.Description };
Lambda Syntax
var category = myContext.Categories.Where(k=>k.CategoryName.Contains("fo")).OrderBy(k => k.CategoryID).Select(p => new { p.CategoryID, p.CategoryName , p.Description });
Distinct Komutu
Veri tabanlarındaki tablolarda zaman zaman aynı değerden bir çok adet bulunabilir. Ve eğer, biz sadece o verilerden birer tane istiyorsak, Distinct komutunu kullanmalıyız.
Farkı görmek için once distinct metodunu kullanmadan veri setimize bakalım.
Query Syntax
var emp = (from p in myContext.Employees select new { p.City }).Distinct();
Lambda Syntax
var emp = myContext.Employees.Select(p => new { p.City }).Distinct();
Take Komutu
Veri setimizden seçtiğimiz kadar verinin veritabanından çekilmesini sağlayan komuttur.
Tablomuzdan bulunan ilk üç kayıtdı getiren komuttur.
Query Syntax
var emp = (from p in myContext.Employees</b> select new { p.City }).Take(3);
Lambda Syntax
var emp = myContext.Employees.Select(p => new { p.City }).Take(3);
Skip Komutu
Skıp komutu ise verdiğimiz parametreden başlayarak verilerimizi bize getirir.
Örneğin aşağıda 3 ‘den sonraki tablomuzdaki bulunan kayıtları getirir.
Query Syntax
var emp = (from p in myContext.Employees select new {p.EmployeeID,p.City }).Skip(3);
Lambda Syntax
var emp = myContext.Employees.Select(p => new {p.EmployeeID, p.City }).Skip(3);
Sayfalama yapmak istediğimizde Skıp ve take komutlarını beraber kullanarak yapabiliriz.
Örneğin 5. Adet kayıttan başlayarak kayıtları beşer beşer çeken komuttur.
var emp = myContext.Employees.Select(p => new {p.EmployeeID, p.City }).Skip(5).Take(5);
Bu yazımızda Linq To SQL Komutlarınından ORDERBY , LIKE , DISTINCT, TAKE ,SKIP komutlarını incelemeye çalıştık diğer Linq To SQL yazılarında diğer komutlara değinmeye çalışacağız.