Şub
16
2013

Linq To Sql Ogreniyorum 3

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;

linq_to_sql_orderby

 

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;

linq_to_sql_descending

 

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

 

startwith

 

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

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

contains

 

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.

linq_to_sql_not_distinc

 

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

linq_to_sql_distinc

 

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

 

linq_to_sql_take

 

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

 

linq_to_sql_skıp

 

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.

 

Yazar Hakkında

Harun Balta 63 adet yazısı bulunuyor..

Bilgisayar Mühendisliği Üzerine çalıştığım konular: C# , .Net , Silverlight , WPF , Entity Framework ,MVVM, Oracle ,Pl/Sql

Print Friendly