﻿
{"id":668,"date":"2012-05-27T12:55:00","date_gmt":"2012-05-27T12:55:00","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=668"},"modified":"2012-05-27T12:55:00","modified_gmt":"2012-05-27T12:55:00","slug":"linq-to-sql-stored-procedure-calistirmak","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/linq-to-sql-stored-procedure-calistirmak\/","title":{"rendered":"Linq To Sql &#8211; Stored Procedure \u00c7al\u0131\u015ft\u0131rmak"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Linq To Sql de Stored Procedure \u00e7al\u0131\u015ft\u0131rabiliriz.Linq To Sql&#8217;de stored procedurlerle \u00e7al\u0131\u015fman\u0131n ayr\u0131 bir zevkide, procedurelerin metod halinde kullanma olana\u011f\u0131 vermesidir.Stored Procedure hakk\u0131nda bilgisi olmayanlar <a title=\"Transact Sql-Stored Procedures(SAKLI YORDAMLAR)\" href=\"http:\/\/www.gencayyildiz.com\/blog\/transact-sql-stored-proceduressakli-yordamlar\/\">Transact Sql-Stored Procedures(SAKLI YORDAMLAR)<\/a>\u00a0ba\u015fl\u0131kl\u0131 yaz\u0131m\u0131 inceleyebilirler.<br \/>\n<!--more--><br \/>\nLINQ da stored procedure kullanmak i\u00e7in \u00f6ncelikle stored proceduremizi veritaban\u0131nda tan\u0131mlam\u0131\u015f olmam\u0131z gerekiyor.A\u015fa\u011f\u0131daki stored procedure \u00fc, Northwind veritaban\u0131na yaz\u0131p,execute ediyorum.Tabi \u00f6nceki yaz\u0131lar\u0131mda oldu\u011fu gibi hala Northwind.dbml dosyas\u0131 \u00fczerinden \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131 bildirmek isterim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ncreate proc sp_TumPersonelleriGetir\r\nas\r\nselect * from Personeller\r\n<\/pre>\n<p style=\"text-align: center;\">\u015eimdi bu stored procedur\u00fc, Visual Studio b\u00f6l\u00fcm\u00fcnde Northwind.dbml dosyas\u0131 \u00fczerinden veritaban\u0131na ba\u011fland\u0131ktan sonra g\u00f6rebiliriz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-669\" title=\"LINQ Stored Procedure\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/1.jpg\" alt=\"\" width=\"258\" height=\"233\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi benim yazd\u0131\u011f\u0131m stored procedure g\u00f6z\u00fckmektedir.<br \/>\nNorthwind.dbml dosyas\u0131nda tablolar\u0131 s\u00fcr\u00fckle b\u0131rak i\u015flemiyle dosyan\u0131n sol taraf\u0131n\u0131 kullan\u0131yorduk.Stored procedurleri ise sa\u011f tarafa s\u00fcr\u00fckleyip b\u0131rakmal\u0131y\u0131z.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-670\" title=\"LINQ Stored Procedure\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/2.jpg\" alt=\"\" width=\"708\" height=\"331\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/2.jpg 708w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/2-300x140.jpg 300w\" sizes=\"auto, (max-width: 708px) 100vw, 708px\" \/><\/a>Art\u0131k bu stored proceduremiz kullan\u0131labilir hale gelmi\u015ftir.<br \/>\nKod k\u0131sm\u0131na gelerek proceduremizi nas\u0131l kulland\u0131\u011f\u0131m\u0131z\u0131 g\u00f6relim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n---1.Kullan\u0131m Tarz\u0131---\r\n            NorthwindDataContext NW = new NorthwindDataContext();\r\n            System.Data.Linq.ISingleResult&lt;sp_TumPersonelleriGetirResult&gt; TumPersoneller = NW.sp_TumPersonelleriGetir();\r\n            string isimler = &quot;&quot;;\r\n            foreach (var item in TumPersoneller)\r\n            {\r\n                isimler += item.Adi + Environment.NewLine;\r\n            }\r\n            MessageBox.Show(isimler);\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi NorthwindDataContext tipinden olan NW nesnemiz \u00fczerinden stored procumuza ula\u015fabiliyoruz.<br \/>\nStored Procedurumuzu &#8220;System.Data.Linq.ISingleResult&#8221; tipinden bir referansa ba\u011flad\u0131m.T = sp_TumPersonelleriGetirResult olmas\u0131n\u0131n sebebide, sp_TumPersonelleriGetir() metodunu yazarken bize \u00e7\u0131kan kutucukta ne yazaca\u011f\u0131m\u0131z\u0131 s\u00f6ylemesidir.Genellikle metodun(arka planda stored procedur tabi) isminin sonuna Result tag\u0131 getirilmi\u015f halidir.<br \/>\nDikkat ederseniz foreach d\u00f6ng\u00fcs\u00fcnde TumPersoneller i\u00e7inde d\u00f6n\u00fcyoruz.Her personeli item de\u011fi\u015fkenine al\u0131yoruz.item.(nokta) dedi\u011fimizde personellerin \u00f6zellikleri kar\u015f\u0131m\u0131za gelmektedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n---2.Kullan\u0131m Tarz\u0131---\r\n            NorthwindDataContext NW = new NorthwindDataContext();\r\n            var Personeller = NW.sp_TumPersonelleriGetir();\r\n            string isimler = &quot;&quot;;\r\n            foreach (var item in Personeller)\r\n            {\r\n                isimler += item.Adi + Environment.NewLine;\r\n            }\r\n            MessageBox.Show(isimler);\r\n<\/pre>\n<p>Bu kullan\u0131m tarz\u0131 daha basit olmakla beraber, programatik olarak sadelik kat\u0131yor.Onun i\u00e7in bunu tercih etmekte fayda var.Stored proceduremizin metodunu direkt \u00e7a\u011f\u0131r\u0131p gelen sonu\u00e7 k\u00fcmesini var tipinden Personeller ad\u0131ndaki de\u011fi\u015fkene at\u0131yoruz.Bu kadar basit \ud83d\ude42<\/p>\n<p>Sevgili okur :),<br \/>\n\u015eimdi akl\u0131ndan ge\u00e7enleri iki farkl\u0131 \u015fekilde tahmin edebiliyorum.<br \/>\nYa diyorsundur ki, yaz\u0131 burada bitti,<br \/>\nya da diyorsundur ki, ulan bu herif parametreli stored prosedurleri anlatmad\u0131 \ud83d\ude42<br \/>\nBen ikinci varsay\u0131m\u0131m olan sesinizi duyuyorum ve parametreli stored prosedurlerin nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 anlatmak istiyorum.<br \/>\n<!--nextpage--><br \/>\nBir \u00f6nceki sayfam\u0131zda Linq To Sql&#8217;de Stored Procedurleri kullanmay\u0131 anlatm\u0131\u015ft\u0131k.Bu sayfadaki i\u015fimize tekrar de\u011finirsek, parametreli Stored Procedurleri kullanmay\u0131 g\u00f6sterece\u011fim.<br \/>\nHi\u00e7 uzatmadan hemen mevzuya girmek, sizinde vaktinizi almamak istiyorum.<br \/>\nVeritaban\u0131m\u0131za(Northwind) parametreli bir stored proc. yazal\u0131m.Ve Northwind.dbml dosyas\u0131nda gerekli yere s\u00fcr\u00fckleyip, metod k\u0131vam\u0131na getirelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ncreate proc sp_IDyeGoreMusteriGetir\r\n(\r\n\t@MusteriID nvarchar(50)\r\n)as\r\n\tselect * from Musteriler where MusteriID = @MusteriID\r\n<\/pre>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-672\" title=\"LINQ Stored Procedure\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/4.jpg\" alt=\"\" width=\"871\" height=\"239\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/4.jpg 871w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/4-300x82.jpg 300w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/a><br \/>\n\u015eimdi bu procedure \u00fc kullanal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n---1. Kullan\u0131m Tarz\u0131---\r\nNorthwindDataContext NW = new NorthwindDataContext();\r\nSystem.Data.Linq.ISingleResult&lt;sp_IDyeGoreMusteriGetirResult&gt; Musteri = NW.sp_IDyeGoreMusteriGetir(&quot;BONAP&quot;);\r\nforeach (var item in Musteri)\r\n{\r\nMessageBox.Show(item.MusteriAdi + &quot; &quot; + item.MusteriUnvani + &quot; &quot; + item.MusteriID);\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n---2. Kullan\u0131m Tarz\u0131---\r\n            NorthwindDataContext NW = new NorthwindDataContext();\r\n            var Musteri = NW.sp_IDyeGoreMusteriGetir(&quot;BONAP&quot;);\r\n            foreach (var item in Musteri)\r\n            {\r\n                MessageBox.Show(item.MusteriID + &quot; &quot; + item.MusteriAdi + &quot; &quot; + item.MusteriUnvani);\r\n            }\r\n<\/pre>\n<p>Bu farkl\u0131 iki kullan\u0131m\u0131 \u00f6nceki sayfada anlatm\u0131\u015ft\u0131m.\u00d6nceki sayfadaki kullan\u0131mlarla buradakiler aras\u0131nda bir fark yok.Hep ayn\u0131d\u0131r.Dikkat ederseniz parametreli bir stored proc. yazd\u0131ysak veritaban\u0131na, LINQ&#8217;da da o Stored proceduru kullan\u0131yorsak, otomatik olarak metodun(stored proc) parametrelerinde o de\u011feri istemektedir.Metoda verilen parametre de\u011feri, stored procdaki gerekli yerlere yerle\u015ftirelecektir.<\/p>\n<p>Veritaban\u0131nda yazd\u0131\u011f\u0131m\u0131z procedurenin i\u015flevi ne olursa olsun(select,insert,update,delete) ayn\u0131 y\u00f6ntemle \u00e7al\u0131\u015ft\u0131r\u0131lmaktad\u0131r.Hi\u00e7 bir de\u011fi\u015fiklik yoktur.<\/p>\n<p>Art\u0131k yaz\u0131m\u0131z\u0131n sonuna gelmi\u015f bulunuyoruz.Faydalanman\u0131z dile\u011fiyle.<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere.<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar \ud83d\ude42<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Linq To Sql de Stored Procedure \u00e7al\u0131\u015ft\u0131rabiliriz.Linq To Sql&#8217;de stored procedurlerle \u00e7al\u0131\u015fman\u0131n ayr\u0131 bir zevkide, procedurelerin metod halinde kullanma olana\u011f\u0131 vermesidir.Stored Procedure hakk\u0131nda bilgisi olmayanlar Transact Sql-Stored Procedures(SAKLI YORDAMLAR)\u00a0ba\u015fl\u0131kl\u0131 yaz\u0131m\u0131 inceleyebilirler.<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,12,226],"tags":[751,229,124],"class_list":["post-668","post","type-post","status-publish","format-standard","hentry","category-asp-net","category-c-sharp-c","category-linq","tag-linq","tag-linq-to-sql","tag-stored-procedure"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=668"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/668\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}