Linq To Sql – Stored Procedure Çalıştırmak

Linq To Sql de Stored Procedure çalıştırabiliriz.Linq To Sql’de stored procedurlerle çalışmanın ayrı bir zevkide, procedurelerin metod halinde kullanma olanağı vermesidir.Stored Procedure hakkında bilgisi olmayanlar Transact Sql-Stored Procedures(SAKLI YORDAMLAR) başlıklı yazımı inceleyebilirler.

LINQ da stored procedure kullanmak için öncelikle stored proceduremizi veritabanında tanımlamış olmamız gerekiyor.Aşağıdaki stored procedure ü, Northwind veritabanına yazıp,execute ediyorum.Tabi önceki yazılarımda olduğu gibi hala Northwind.dbml dosyası üzerinden çalıştığımı bildirmek isterim.

create proc sp_TumPersonelleriGetir
as
select * from Personeller

Şimdi bu stored procedurü, Visual Studio bölümünde Northwind.dbml dosyası üzerinden veritabanına bağlandıktan sonra görebiliriz.

Gördüğünüz gibi benim yazdığım stored procedure gözükmektedir.
Northwind.dbml dosyasında tabloları sürükle bırak işlemiyle dosyanın sol tarafını kullanıyorduk.Stored procedurleri ise sağ tarafa sürükleyip bırakmalıyız.
Artık bu stored proceduremiz kullanılabilir hale gelmiştir.
Kod kısmına gelerek proceduremizi nasıl kullandığımızı görelim.

---1.Kullanım Tarzı---
            NorthwindDataContext NW = new NorthwindDataContext();
            System.Data.Linq.ISingleResult<sp_TumPersonelleriGetirResult> TumPersoneller = NW.sp_TumPersonelleriGetir();
            string isimler = "";
            foreach (var item in TumPersoneller)
            {
                isimler += item.Adi + Environment.NewLine;
            }
            MessageBox.Show(isimler);

Gördüğünüz gibi NorthwindDataContext tipinden olan NW nesnemiz üzerinden stored procumuza ulaşabiliyoruz.
Stored Procedurumuzu “System.Data.Linq.ISingleResult” tipinden bir referansa bağladım.T = sp_TumPersonelleriGetirResult olmasının sebebide, sp_TumPersonelleriGetir() metodunu yazarken bize çıkan kutucukta ne yazacağımızı söylemesidir.Genellikle metodun(arka planda stored procedur tabi) isminin sonuna Result tagı getirilmiş halidir.
Dikkat ederseniz foreach döngüsünde TumPersoneller içinde dönüyoruz.Her personeli item değişkenine alıyoruz.item.(nokta) dediğimizde personellerin özellikleri karşımıza gelmektedir.

---2.Kullanım Tarzı---
            NorthwindDataContext NW = new NorthwindDataContext();
            var Personeller = NW.sp_TumPersonelleriGetir();
            string isimler = "";
            foreach (var item in Personeller)
            {
                isimler += item.Adi + Environment.NewLine;
            }
            MessageBox.Show(isimler);

Bu kullanım tarzı daha basit olmakla beraber, programatik olarak sadelik katıyor.Onun için bunu tercih etmekte fayda var.Stored proceduremizin metodunu direkt çağırıp gelen sonuç kümesini var tipinden Personeller adındaki değişkene atıyoruz.Bu kadar basit 🙂

Sevgili okur :),
Şimdi aklından geçenleri iki farklı şekilde tahmin edebiliyorum.
Ya diyorsundur ki, yazı burada bitti,
ya da diyorsundur ki, ulan bu herif parametreli stored prosedurleri anlatmadı 🙂
Ben ikinci varsayımım olan sesinizi duyuyorum ve parametreli stored prosedurlerin nasıl kullanıldığını anlatmak istiyorum.

Bunlar da hoşunuza gidebilir...

4 Cevaplar

  1. Sinan dedi ki:

    😀 peki nerde parametreli proc ?

  2. Sinan dedi ki:

    Etiket bulutu süper olmus bu arada

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.