Linq makalemize öncelikle şu soru ile başlamak istiyorum;
Kaçımız T-SQL kodu yazarken bunun sıralaması nasıl oluyor ve select esasında son satırda olması gerekirken neden başta yazıyoruz? Sorusuna bunun çalışma biçimi bu şekil gibisinden cevaplar almıştır. Bunun üzerine yılların verdiği T-SQL kullanım tecrübesiyle de
farkında olmadan aklımıza ve mantığımıza bu şekilde kalmıştır.
Artık ORM ( Object-Relational-Mapping ) ler sayesinde Visual Studio 2008 den itibaren projemize eklediğimiz linq-to-sql veya linq-to-entities aracılıyla T-SQL kodu yazmadan Visual Studio editörü içerisinde her işimizi nesneler aracılıyla halledebiliyoruz.
Tabiki küçük bir değişiklik ile karşımıza gelen bu kodlar yıllardır öğrendiğimiz T-SQL komutlarının tam tersi niteliğinde, Bunu bir örnek ile açıklamak gerekirse şimdiye kadar karşıdan karşıya geçerken önce sola sonra sağa ardından tekrar sola baktığımız trafik kurallarımızın bir an oluyor Kıbrıs'a gittiğimizde tam tersi olduğunu görünce ilk başlarda bir zorluk yaşamamıza sebebiyet vermektedir. Bu makalemizde T-SQL sıralaması neden Visual Studio editöründe bozulduğunun mantıklı bir açıklaması niteliğindedir. Visual Studio Editörümüz bilinği üzere soldan sağa ve ardından satır bitimindede yukarıdan aşağıya adım adım çalışma mantığı bulunan bir editördür. Fakat T-SQL bu mantıkla çalışmadığından dolayı, nasıl olurda Visual Studio editörünün içerisinde entegrasyonu sağlanmıştır.
Bununla ilgili T-SQL çalışma sıralaması şu şekildedir.
(8) SELECT
(9) TOP
(1) FROM
(3) JOIN
(2) ON
(4) WHERE<
(5) GROUP BY
(6) WITH
(7) HAVING
(10) ORDER BY
Şimdi kısaca bir T-SQL komutu ile bir sorgu yazalım ve bu sorgunun linq eşitliğine bakalım.
select *
from urunlerimiz
where urunlerimizID = 102
Aynı kodun LINQ (Language Integrated Query) karşılığı ise sıralama kurallarına uygun bir biçimde aşağıdaki gibidir.
var urun = from t in Verilerimiz.Urunlerimizs
where t.urunlerimizID == 102
select t;
Yukarıdaki koddanda anlaşıldığı için sıralama değişti fakat sonuç aynı. Eğitimde ezberlicilikten yana olmayanlar için yazmış olduğum bu makale belkide çok küçük bir detay fakat biraz öncede deyindiğim gibi başarı detaylarda gizlidir cümlesini doğrular gibi.
iyi çalışmalar dilerim.