Asp.NET MVC içerisinde Stored Procedure Nasıl Kullanılır ?

Herkese Selamlar ! Son zamanlarda yine tarafıma çok sorulmuş olan bir soruyu kaleme almaya karar verdim. Sorunun ne olduğunu aslında başlıktan da anlayabiliyorsunuz peki ciddi anlamda zor mu bunu yapmak ? Gönül rahatlığı ile söyleyebilirim ki kesinlikle çok kolay ! Yazımızı ise biraz daha zenginleştirmek adına stored procedure tam olarak ne ona bir bakalım sizler ile beraber.

Stored Procedure Nedir ?

Tam olarak dilimizde ki karşılığı ise saklanılmış yordam demektir. SQL Server içerisinde sık kullandığımız ve performans anlamında veri tabanımızı gerçekten yoran sorguları veri tabanı nesnesi haline getirmek ve bir sefer derlenip defalarca kullanılmasını sağlamaktır. Bu sebepten dolayı performanslı çalışırlar.  Ayrıca SPler parametreli ya da parametresiz olarak çalışabilirler. Yazı içerisinde gerçekleştireceğimiz örnek için Northwind veri tabanını kullanıyor olacağız.  Bu aşamada ise Northwind içerisinde bir adet stored procedure oluşturuyorum ve örneğimize yavaş yavaş giriş yapıyoruz…

//hazirladigimiz procedure
use Northwind
create procedure prc_GetEmployee
as
select*from Employees

Stored procedure oluşturduktan sonra bir adet mvc projesi açıp entity framework kullanarak veri tabanı ile bağlantıya geçiyoruz. Entity framework kullanarak bağlantıya geçmek için ise projemiz altında yer alan “Models” klasörü üzerinde sağ tık “Add” sonra ki aşamada “New Item” yolunu takip ediyoruz…

Yukarıda yer alan ekran görüntüsünde ki aşamaları başarı ile gerçekleştirdikten sonra karşımıza aşağıda yer alan gelecek ve oradan “Data” sekmesinden “Ado.NET Entity Data Model” seçeneğini seçip bir isim veriyoruz. Tabi ki de herhangi bir isim verebiliriz burada ben “NorthwindModel” ismini verip “Add” butonuna tıklayıp sonraki ekrana geçiyorum.

 

Yukarıda ki ekranda yer alan “Add” butonuna tıkladıktan sonra aşağıda ki ekran açılmakta. Açılmış olan ekranda ise “EF Designer from database” seçeneğini seçiyoruz. 

 

“Next” butonuna tıkladıktan sonra ise açılan pencerede yer alan “New Connection” butonuna tıklayıp  açılan pencereye bağlantı bilgilerimizi girip visual studio ve sql server arasinda ki haberleşmeyi sağlıyoruz.

Yukarıda ki görselde görmüş olduğunuz gibi “Server Name” isimli alana “.” karakterini yerleştirdik bunun sebebi ise üzerinde çalışacağımız veri tabanının yerelde yani aynı bilgisayar içerisinde yer almasıdır. Tüm bunları gerçekleştirip “OK” butonuna tıkladıktan sonra ise geliştirdiğimiz uygulama içerisine hangi veri tabanı nesnelerini dahil edeceksek onları işaretliyoruz.

Yukarıda ki görselde de göreceğiniz gibi biz sadece “prc_GetEmployee”  isimli procedure nesnesini dahil ettik. Görselde sığdıramadığım için göremiyorsunuz fakat table sekmesinden de procedureun doğrudan çalıştığı tablo olan “Employee” tablosunu seçtim. Bu kısmı tamamladıktan sonra ki aşama ise artık proje içerisine dahil etmiş olduğumuz bir veri tabanı nesnesi olan procedureu method gibi kullanmamız gerekmekte.O yüzden gelmiş olan ekranda boş bir alana sağ tık yapıp “Model Browser” sekmesini tıklıyoruz.

Tıklanılmasına takiben sağ tarafta “Model Browser” ekranı açılmaktadır. Bu ekran da sql server içerisinden uygulama içerisine transfer etmiş olduğumuz procedureu görebiliriz. Bu esnada henüz method haline dönüştürmedik burayı atlamadan kesinlikle geçmeyelim.

Function haline dönüştürmek için ise yukarıda kırmızı dikdörtgen ile işaretlenmiş olan “prc_GetEmployee” isimli procedure üzerinde sağ tık yapıp “Add Function Import” sekmesine tıklayıp aşağıda ki ekranı elde ettikten sonra yine kırmızı ile işaretli olan alanlarda ki değişiklikleri yapıp procedure olarak uygulamaya dahil ettiğimiz veri tabanı nesnesini method haline dönüştürüp artık işimizi ciddi anlamda kolaylaştırıyoruz.

Artık bu aşamadan sonra işimiz daha önceden mvc üzerinde ne yapıyorsak o ! Bir Controller ekliyorum isim olarak ise “HomeController” ismini veriyorum. İçerisine ise aşağıda yer alan kodları yazıyorum.

        NorthwindEntities _db = new NorthwindEntities();
        public ActionResult Index()
        {
            List<Employee> emplist = _db.fn_GetEmployee().ToList();
            return View(emplist);
        }

Yukarıda ki kod satırlarında da görmüş olduğunuz gibi procedure olarak uygulamamıza dahil ettiğimiz veri tabanı nesnesini fonksiyon olarak kullanabilmekteyiz. Tabi bu kullanım şeklinin sonucunu da elde etmemiz gerekmekte. Bu sonucu görebilmek için ise bir adet view ekliyorum “Index” isimli actionresult üzerinde sağ tık yapıp “AddView” seçeneğini tıklıyorum. Açılan pencerede ise yine son düzenlemeleri yapıyorum.

Artık uygulamamızı çalıştırıp ekran çıktısını görebiliriz.

 

 

Bu yazılıkta bu kadar . Okuduğunuz için çok teşekkür ederim. Bu yazıyı post ederken dinlediğim şarkı ise: Namika – Lieblingsmensch Başka yazılarda görüşmek üzere hoşça kalın….

leave your comment

EnglishGermanTurkish