Ouml;ncelikle merhabalar bu yazımızda Linq ile sql cümlesinin nasıl çalıştırılabileceğini ve buradan dönen değerin nasıl alınabileceğini inceliyor olacağız. Şu anda belkide neden sql cümlesi çalıştırmak için Linq'yu kullanayım diye düşünebilirsiniz. Fakat eğer ki projenize Linq ile başlamışsanız veya zaten Linq kullanıyorsunuz yönteminizi değiştirmeden böylece istediğiniz sql cümlesinide çalıştırabilirsiniz.
Sql cümlesinin nasıl çalıştırıldığına değinmek gerekirse aslında yöntemi çok basit. Bir adet stored procedure oluşturacağız ve bu oluşturduğumuz stored procedure'u linq projemize ekleyeceğiz. Bu stored procedure'mize yalnızca bir adet parametre gönderilebilir olacak ve gönderdiğimiz parametrede sql cümlemizin ta kendisi oalcak. Böylece gönderdiğimiz sql cümlemiz stored procedure içerisinde çalıştırılıp çıkıtısı bize gönderilecek.
Lafı fazla uzatmadan hemen stored proceduremuzu yazalım. Sql serverimizi açıyoruz ve yeni bir query yazıyoruz.
CREATE PROCEDURE spKomutCalistir
@SqlKomut NVARCHAR(4000)
AS
BEGIN
EXEC (@SqlKomut)
END
Yazdığımız bu basit stored procedure'de gördüğünüz üzere sadece gelen parametreyi çalıştırıyoruz. Daha sonra bu yazdığımız ve çalıştırdığımız procedure'ü linq dosyamıza ekliyoruz.
Ben Visual Studio'yu açarak bir Asp.Net Web Application oluşturuyorum. Daha sonra projeye sağ tıklayarak Add-New Item diyerek
Linq To Sql seçilerek projeye eklenir.
Projeye ekledikten sonra sıra geldi yazdığımız stored procedure 'yi Linq içerisinde eklemeye. Bunun için yanda Server Explorer penceresinen yazdığımız stored procedure seçilerek Linq to Sql içerisine sürüklenip bırakılır.
Bu işlemide yaptıkdan sonra şimdi verilerimizi çekeceğimiz bir tablo yapıyoruz. Ben sadece 3 alanı olan bir tablo yaptım aşağıdaki gibi.
Tablomuzada örnek bazı veriler girdikten sorna artık sql cümlemizi yazabiliriz. Tabiki sql cümlemizi yazmadan önce gelen verilerimizi tutacak bir sınıf yazıyoruz. Bu sınıfı şuan için linq to sql dosyamızın designer.cs dosyası içerisine yazabiliriz.
Şimdi sıra geldi linq to sql dosyamızın içerisine eklemiş olduğumuz KomutCalistir stored procedure'ne geri dönüş tipini bildirmeye. Tabiki geri dönüş tipi olarakda yazdığımız insanlar sınıfını vereceğiz. Komutcalistir methodumuzun son hali aşağıdakine benzeyecek.
Gördüğünüz üzere burda geri dönüş tipini ISingleResult arayüzüne dönüştürdük. Bunun nedeni ise göndereceğimiz sorguların yalnızca 1 dönüş tipinin olmasından kaynaklanıyor. Yani iki farklı select sorgusunu barındıramaz yazdığımız sql cümlesi. Artık sorgumuzu yazıp bir gridView'e verilerimi aktarabiliriz. Sayfanın load olayına hemen kodlarımızı yazıyoruz.
Geriye F5 e basarak projemizi çalıştırıp görmek kalıyor.
Burada bahsetmek istediğim birkaç şey var. Öncelikle linq to sql otomatik olarak her yeni bir Table yada Stored Procedure eklendiğinde tüm içeriğini değiştirmekte ve dolayısıyla eğer tutucu sınıfınızı (bizim yazdığımızda insanlar) linq to sql içerisine yazarsanız her yeni birşeyler eklediğinizde sizin yazdıklarınız gidecektir. Bunun için ayrı bir dosyada sınıfınızı yazmak daha kullanışlı olacaktır.
Bu yazımızda kısaca linq to sql içerisinden nasıl sql cümlelerini nasıl çalıştırabileceğimizi incelemeye çalıştık. Umarım faydalı olmuştur.
Bir sonraki makalede görüşmek üzere. Proje dosyasını buradan indirebilirisiniz.
ibrahim BAYIR
firstname.lastname@example.org