Subscribe:

14 Temmuz 2013 Pazar

LINQ YAPISI - SORGU OLUŞTURMA

Linq ile ilgili daha önce bir yazı yazmıştım. Linq yapısını kısaca anlatmaya çalıştığım o yazıya buradan ulaşabilirsiniz.
Bu yazıda da bir linq sorgusu nasıl oluşturulur ondan bahsedeceğim. Oluşturacağımız sorguları veri kaynağından istediğimiz veriyi elde etmek için kullanacağız.
İlk önce verileri ilgili veritabanından elde etmemiz gerekecek. Linq yapısıyla veritabanından elde ettiğimiz verileri nesneler haline dönüştüreceğiz.


Yukarıdaki örnekte "Ogrenci" isminde bir sınıf oluşturdum. Veritabanı tablolarımda bulunan alanları burada değişken olarak tanımladım. Sonra sınıfın yapıcı yordamına bu alanları parametre olarak verdim. Bu sınıfın içerisinde  List<Ogrenci> logrenci=new List<Ogrenci>(); diye bir değişken tanımladım. Bu değişkeni tanımlama sebebmii aşağıda açıklayacağım.


Yukarıdaki kod bloğunda veritabanındanki "ogrenci" tablosundan çektiğim verileri yukarıda bahsettiğim logrenci dizisine ekliyoruz. Bir kere verileri eklediğimiz zaman artık veritabanı ile işimiz kalmıyor. Sorgularımızı artık veritabanına bağlanmayla değilde linq yapısını kullanarak gerçekleştireceğiz.



Yukarıdaki kod bloğunda ise bütün öğrencileri dataGrid nesnesi içerisine atıyoruz.
var vogrenci = from c in Ogrenci.logrenci select c;
sorgu yapısıyla bütün öğrencileri foreach döngüsü içerisinde teker teker dataGrid içerisine ekliyoruz.
Artık her türlü sorgulama işlemlerimizi bu yapıyı kullanarak gerçekleştirebiliriz. Bir örnek daha verecek olursam: adı "Sadık" olanları messagebox içerisinde gösteren kod parçası aşağıdaki gibidir.
Aslında dikkat ederseniz bu yapı sql yapısına oldukça benziyor. Where ifadesi de burada sql de olduğu gibi şart ifadesi olarak kullanılmaktadır.

Daha bir çok örnek verilebilir bu yapıyla ilgili. Ama asıl üzerinde durulması gereken bütün sorgulama işlemlerimizi sürekli veritabanına bağlanma şeklinde değilde linq yapısını kullarak rahatlıkla gerçekleştirebiliyor olmamızdır. Bu bize hem veritabanındaki sorgulama işlemlerini programlama dili çatısı altında oluşturmamıza olanak sağlıyor hemde hızlılığı ve verimliliği ciddi bir şekilde artırıyor.

0 yorum:

Yorum Gönder