﻿
{"id":618,"date":"2012-05-21T12:11:19","date_gmt":"2012-05-21T12:11:19","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=618"},"modified":"2012-05-21T12:13:09","modified_gmt":"2012-05-21T12:13:09","slug":"linq-to-sql","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/linq-to-sql\/","title":{"rendered":"LINQ TO SQL"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>LINQ teknolojisi tamamen veri eri\u015fim i\u015flemini daha kolay ve anla\u015f\u0131l\u0131r hale getirmek ama\u00e7l\u0131 tasarlanm\u0131\u015ft\u0131r.Bu veri eri\u015fim y\u00f6ntemleri LINQ TO XML, LINQ TO OBJECT ve LINQ TO SQL olarak veri kayna\u011f\u0131na g\u00f6re de\u011fi\u015fiklik g\u00f6stermektedir.Ben burada LINQ TO SQL i anlataca\u011f\u0131m.<\/p>\n<p>LINQ TO SQL, LINQ ile yazd\u0131\u011f\u0131m\u0131z komutlar\u0131 ADO.NET providerlar\u0131na g\u00f6nderir.ADO.NET providerlar\u0131 kendilerine gelen ifadeleri database e g\u00f6nderir.D\u00f6nen sonu\u00e7lar DataReader tipinden d\u00f6ner(ADO.NET Providerlar\u0131na),providerler da sonucu IQueryable tipinden geri g\u00f6nderirler.<br \/>\n<!--more--><br \/>\nAd\u0131 \u00fcst\u00fcnde LINQ TO SQL, yani SQL veri kayna\u011f\u0131yla \u00e7al\u0131\u015faca\u011f\u0131z.<br \/>\nSQL Server&#8217;da Northwind veritaban\u0131n\u0131 kullanaca\u011f\u0131m\u0131 belirtmek isterim.<br \/>\n\u015eimdi LINQ ile SQL veri kayna\u011f\u0131nda \u00e7al\u0131\u015fmak istiyorsam e\u011fer, projeme Add New Item ile LINQ TO SQL Clasess eklemeliyiz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-619\" title=\"linq1\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq1.jpg\" alt=\"\" width=\"954\" height=\"602\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq1.jpg 954w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq1-300x189.jpg 300w\" sizes=\"auto, (max-width: 954px) 100vw, 954px\" \/><\/a><br \/>\nG\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi uzant\u0131s\u0131 .dbml olan bir dosyad\u0131r.Bu dosyaya kullanaca\u011f\u0131m\u0131z veri taban\u0131ndaki tablolar\u0131, stored procedure leri, viewleri vs. ekleyece\u011fiz.Bu sayede bu .dbml uzant\u0131l\u0131 dosya, arka planda eklenen tablolar i\u00e7in entityler ve koleksiyonlar olu\u015fturacakt\u0131r.Genel \u015fablon \u015fu \u015fekilde olacakt\u0131r.Northwind tablosundaki Personeller tablosunun entitysi Personeller clas\u0131 olacakken, koleksiyonu ise Personellers olarak olu\u015facakt\u0131r.<br \/>\nG\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi ben Northwind.dbml ad\u0131nda bu dosyay\u0131 projeme ekliyorum.<br \/>\n\u015eimdi ekledi\u011fimiz Northwind.dbml dosyas\u0131n\u0131 biraz tan\u0131yal\u0131m.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-621\" title=\"linq2\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq2.jpg\" alt=\"\" width=\"664\" height=\"464\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq2.jpg 664w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq2-300x209.jpg 300w\" sizes=\"auto, (max-width: 664px) 100vw, 664px\" \/><\/a>Yukar\u0131da da bahsetti\u011fim gibi tablolar\u0131m\u0131z\u0131, stored proc lar\u0131m\u0131z\u0131 ekleyece\u011fimiz mecrad\u0131r.Sol tarafa tablolar ve viewleri, sa\u011f tarafada stored procedure leri ekleyece\u011fiz.<\/p>\n<p>\u015eimdi SQL Server\u0131mdaki Northwind tablosuna ba\u011flan\u0131p, Northwind.dbml dosyas\u0131na tablolar\u0131m\u0131z\u0131 atal\u0131m.<br \/>\n\u00d6ncelikle Server Explorer penceresine gelelim.Server Explorer pencereniz a\u00e7\u0131k de\u011filse View sekmesinden Server Explorer&#8217;\u0131 t\u0131klaman\u0131z yeterli olacakt\u0131r.<\/p>\n<p>Server Explorer penceresinde Data Connections&#8217;a sa\u011f t\u0131klay\u0131p , Add Connection diyerek veritaban\u0131n\u0131 ekleyiniz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/LINQ3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-622\" title=\"LINQ3\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/LINQ3.jpg\" alt=\"\" width=\"548\" height=\"492\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/LINQ3.jpg 548w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/LINQ3-300x269.jpg 300w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\" \/><\/a>\u00a0Bu i\u015flemden sonra Data Connections men\u00fcs\u00fcnde veritaban\u0131n\u0131z g\u00f6z\u00fckecektir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-623\" title=\"linq 4\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-4.jpg\" alt=\"\" width=\"248\" height=\"523\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-4.jpg 248w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-4-142x300.jpg 142w\" sizes=\"auto, (max-width: 248px) 100vw, 248px\" \/><\/a>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi veritaban\u0131n\u0131n b\u00fct\u00fcn tablolar\u0131 ve Stored procedurleri oldu\u011fu gibi gelmi\u015ftir.<\/p>\n<p>\u0130lk etapta \u00f6rnek olsun diye M\u00fcsteriler tablosunu .dbml dosyas\u0131na atal\u0131m ve \u00fczerinde bir ka\u00e7 LINQ \u00e7al\u0131\u015fmas\u0131 yapal\u0131m.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-624\" title=\"linq5\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq5.jpg\" alt=\"\" width=\"663\" height=\"465\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq5.jpg 663w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq5-300x210.jpg 300w\" sizes=\"auto, (max-width: 663px) 100vw, 663px\" \/><\/a>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Musteriler tablosunu s\u00fcr\u00fckledim.Bu s\u00fcr\u00fckleme i\u015flemi bitti\u011fi anda, arka plan mant\u0131\u011f\u0131 hemen devreye giriyor.Yani art\u0131k Musteriler tablosunun entitysi ve koleksiyonu olu\u015fturuldu.<\/p>\n<p>Art\u0131k LINQ kodlar\u0131 konu\u015fma zaman\u0131 geldi.Di\u011fer sayfada programatik olarak LINQ i\u015flemlerine devam edelim.<br \/>\n<!--nextpage--><br \/>\nBir \u00f6nceki sayfada Musteriler tablosu Northwind.dbml dosyas\u0131na atm\u0131\u015ft\u0131k.\u015eimdi bir ka\u00e7 teferruat kod bilgi verdikten sonra Musteriler tablosuyla ilgili LINQ kod yazaca\u011f\u0131m.<br \/>\n\u00d6ncelikle Northwind.dbml dosyas\u0131ndaki tablolar\u0131, stored procedurleri vs kullanarak LINQ komutlar\u0131 yazmak istiyorsak Northwind.dbml den bir nesne olu\u015fturmam\u0131z gerekiyor.Ve bu nesne \u00fczerinde \u00e7al\u0131\u015fmam\u0131z gerekiyor.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nNorthwindDataContext Northwind = new NorthwindDataContext();\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi biz Northwind ismi koydu\u011fumuz halde, kendisi NorthwindDataContext olmu\u015f.LINQ da .dbml dosyalar\u0131n\u0131n isimlerinin sonuna DataContext ismini otomatik koyar.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nNorthwind.Musterilers\r\n<\/pre>\n<p>NorthwindDataContext nesnesine .(nokta) dedi\u011fimizde Musterilers \u00f6zelli\u011fini g\u00f6r\u00fcyoruz.Musteriler tablosunun koleksiyonunu olu\u015fturmu\u015f.Tablonun koleksiyonunu olu\u015fturur ve tablo isminin sonuna \u00e7okluk eki olan &#8220;s&#8221; harfini koyar.<br \/>\nArt\u0131k Musteriler tablosunda LINQ komutlar\u0131 \u00e7al\u0131\u015ft\u0131ral\u0131m.<br \/>\nFormumuza birer Button ve ListBox nesnesi koyup , i\u015flemlere ba\u015fl\u0131yorum.<br \/>\n\u00d6ncelikle LINQ komutlar\u0131yla t\u00fcm m\u00fc\u015fterileri elde edip ListBox nesnesine yazd\u0131ral\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            var Musteriler = from musteri in Northwind.Musterilers\r\n                             select musteri;\r\n            foreach (var item in Musteriler)\r\n            {\r\n                listBox1.Items.Add(item.MusteriAdi + &quot; &quot; + item.Ulke);\r\n            }\r\n        }\r\n<\/pre>\n<p>USA&#8217;da ya\u015fayan m\u00fc\u015fterileri \u00e7ekip, ListBox&#8217;a yazd\u0131ral\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            var Musteriler = from musteri in Northwind.Musterilers\r\n                             where musteri.Ulke == &quot;USA&quot;\r\n                             select musteri;\r\n            foreach (var item in Musteriler)\r\n            {\r\n                listBox1.Items.Add(item.MusteriAdi + &quot; &quot; + item.Ulke);\r\n            }\r\n        }\r\n<\/pre>\n<p>Tabi geriye m\u00fc\u015fteri nesneleri d\u00f6nd\u00fc\u011f\u00fcnden kesinlikle emin oldu\u011fum i\u00e7in, sonu\u00e7 k\u00fcmesini var tipinden de\u011filde Musteri tipinden bir koleksiyona atabilirim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            List Musteriler = (from musteri in Northwind.Musterilers\r\n                                           where musteri.Ulke == &quot;USA&quot;\r\n                                           select musteri).ToList();\r\n            foreach (var item in Musteriler)\r\n            {\r\n                listBox1.Items.Add(item.MusteriAdi + &quot; &quot; + item.Ulke);\r\n            }\r\n        }\r\n<\/pre>\n<p>USA&#8217;da ya\u015fayan m\u00fc\u015fterilerimi b\u00f6lgelerine ve \u015fehirlerine g\u00f6re s\u0131ral\u0131 bir \u015fekilde getirelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            var Musteriler = from musteri in Northwind.Musterilers\r\n                                           where musteri.Ulke == &quot;USA&quot;\r\n                                           orderby musteri.Bolge descending,musteri.Sehir ascending\r\n                                           select musteri;\r\n            foreach (var item in Musteriler)\r\n            {\r\n                listBox1.Items.Add(item.Bolge + &quot; &quot; + item.Ulke);\r\n            }\r\n        }\r\n<\/pre>\n<p>Kendi belirledi\u011fimiz bir tipi geri d\u00f6nd\u00fcrelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        class KendiMusterim\r\n        {\r\n            public string Ad { get; set; }\r\n            public string Sirket { get; set; }\r\n        }\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            var Musteriler = from musteri in Northwind.Musterilers\r\n                             where musteri.Ulke == &quot;USA&quot;\r\n                             orderby musteri.Bolge descending, musteri.Sehir ascending\r\n                             select new KendiMusterim\r\n                             {\r\n                                 Ad = musteri.MusteriAdi,\r\n                                 Sirket = musteri.SirketAdi\r\n                             };\r\n            foreach (var item in Musteriler)\r\n            {\r\n                listBox1.Items.Add(item.Sirket + &quot; &quot; + item.Ad);\r\n            }\r\n        }\r\n<\/pre>\n<p>Anonymous Type geri d\u00f6nebiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            var Musteriler = from musteri in Northwind.Musterilers\r\n                             where musteri.Ulke == &quot;USA&quot;\r\n                             orderby musteri.Bolge descending, musteri.Sehir ascending\r\n                             select new\r\n                             {\r\n                                 Musterinin\u0130smi = musteri.MusteriAdi,\r\n                                 MusterininCalistigiYer = musteri.SirketAdi\r\n                             };\r\n            foreach (var item in Musteriler)\r\n            {\r\n                listBox1.Items.Add(item.Musterinin\u0130smi + &quot; &quot; + item.MusterininCalistigiYer);\r\n            }\r\n        }\r\n<\/pre>\n<p>Spain \u00fclkesinde ya\u015fayan m\u00fc\u015fterilerim hangi \u015fehirlerde ya\u015f\u0131yorlar?<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            var Musteriler = from musteri in Northwind.Musterilers\r\n                             where musteri.Ulke == &quot;Spain&quot;\r\n                             select musteri.Sehir;\r\n            foreach (var item in Musteriler)\r\n            {\r\n                listBox1.Items.Add(item);\r\n            }\r\n        }\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131z zaman ayn\u0131 \u015fehirlerin tekrar geldi\u011fini g\u00f6receksiniz.Hat\u0131rlarsan\u0131z SQL komutlar\u0131nda Distinct yap\u0131yorduk.Ayn\u0131 \u015fekilde burdada Distinct yapaca\u011f\u0131z.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            var Musteriler = (from musteri in Northwind.Musterilers\r\n                             where musteri.Ulke == &quot;Spain&quot;\r\n                             select musteri.Sehir).Distinct();\r\n            foreach (var item in Musteriler)\r\n            {\r\n                listBox1.Items.Add(item);\r\n            }\r\n        }\r\n<\/pre>\n<hr \/>\n<p>Birazda Satislar tablosunda \u00e7al\u0131\u015fal\u0131m.<br \/>\nNorthwind.dbml ye Satislar tablosunu s\u00fcr\u00fckleyip b\u0131rakt\u0131m.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-626\" title=\"linq 6\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-6.jpg\" alt=\"\" width=\"480\" height=\"329\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-6.jpg 480w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-6-300x205.jpg 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Satislar ile Musteriler tablolar\u0131 aras\u0131nda bir constraint mevcut.Bu ba\u011f hakk\u0131nda g\u00f6z\u00fcn\u00fczden ka\u00e7mamas\u0131 gereken detaylar\u0131 iyi takip ediniz.<br \/>\nE\u011fer bir tabloya ba\u011fl\u0131 ba\u015fka bir tablo varsa, nesne \u00fczerinden o nesnenin ba\u011fl\u0131 oldu\u011fu di\u011fer tabloyu koleksiyon olarak elde edebiliriz.<br \/>\n\u00d6rne\u011fin,<br \/>\n\u0130sminin i\u00e7inde &#8220;A&#8221; harfi ge\u00e7en m\u00fc\u015fterilerimize yap\u0131lan sat\u0131\u015flar\u0131 listeleyim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        NorthwindDataContext Northwind = new NorthwindDataContext();\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            var Sonuc = from musteri in Northwind.Musterilers\r\n                        where musteri.MusteriAdi.Contains(&quot;A&quot;)\r\n                        select new\r\n                        {\r\n                            MusteriAdi = musteri.MusteriAdi,\r\n                            MusteriSatislari = musteri.Satislars\r\n                        };\r\n            foreach (var musteri in Sonuc)\r\n            {\r\n                listBox1.Items.Add(musteri.MusteriAdi);\r\n                foreach (var satis in musteri.MusteriSatislari)\r\n                {\r\n                    listBox1.Items.Add(&quot; &quot; + satis.SatisID);\r\n                }\r\n            }\r\n        }\r\n<\/pre>\n<p>Satis_Detaylari tablosunuda Northwind.dbml dosyas\u0131na atal\u0131m.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-628\" title=\"linq 7\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-7.jpg\" alt=\"\" width=\"718\" height=\"320\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-7.jpg 718w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-7-300x133.jpg 300w\" sizes=\"auto, (max-width: 718px) 100vw, 718px\" \/><\/a>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Satis_Detaylari tablosunun Satislar tablosuyla bir ba\u011flant\u0131s\u0131 var.<\/p>\n<p>7 nolu \u00fcr\u00fcn toplam ka\u00e7 adet sat\u0131lm\u0131\u015ft\u0131r?<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nNorthwindDataContext Northwind = new NorthwindDataContext();\r\nvar Sonuc = (from satis in Northwind.Satis_Detaylaris\r\nwhere satis.UrunID == 7\r\nselect satis).Count();\r\nMessageBox.Show(Sonuc.ToString());\r\n<\/pre>\n<p>7 nolu \u00fcr\u00fcn\u00fcn toplam sat\u0131\u015f fiyat\u0131 nedir?<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            NorthwindDataContext Northwind = new NorthwindDataContext();\r\n            var Sonuc = (from satis in Northwind.Satis_Detaylaris\r\n                         where satis.UrunID == 7\r\n                         select satis.BirimFiyati * satis.Miktar).Sum();\r\n            MessageBox.Show(Sonuc.ToString());\r\n<\/pre>\n<p>7 nolu \u00fcr\u00fcn\u00fcn ortalama sat\u0131\u015f fiyat\u0131 nedir?<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            NorthwindDataContext Northwind = new NorthwindDataContext();\r\n            var Sonuc = (from satis in Northwind.Satis_Detaylaris\r\n                         where satis.UrunID == 7\r\n                         select satis.BirimFiyati * satis.Miktar).Average();\r\n            MessageBox.Show(Sonuc.ToString());\r\n<\/pre>\n<hr \/>\n<p>\u015eimdide Kategoriler ve \u00dcr\u00fcnler tablosunu Northwind.dbml dosyas\u0131na s\u00fcr\u00fckleyelim.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-629\" title=\"linq 8\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-8.jpg\" alt=\"\" width=\"451\" height=\"335\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-8.jpg 451w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq-8-300x222.jpg 300w\" sizes=\"auto, (max-width: 451px) 100vw, 451px\" \/><\/a>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Kategoriler ile Urunler tablosu aras\u0131nda bir ba\u011flant\u0131 mevcut.<\/p>\n<p>Beverages kategorisindeki \u00fcr\u00fcnler ?<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nNorthwindDataContext Northwind = new NorthwindDataContext();\r\nvar Sonuc = from urun in Northwind.Urunlers\r\nwhere urun.Kategoriler.KategoriAdi == &quot;Beverages&quot;\r\nselect urun;\r\nforeach (var item in Sonuc)\r\n{\r\nlistBox1.Items.Add(item.UrunAdi);\r\n}\r\n<\/pre>\n<p>\u015eimdi a\u015fa\u011f\u0131daki \u00f6rnek kodlara dikkatinizi \u00e7ekmek istiyorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n           var deneme1 = from kategori in Northwind.Kategorilers\r\n                where kategori.Urunlers......\r\n           var deneme2 = from urun in Northwind.Urunlers\r\n                where urun.Kategoriler.......\r\n<\/pre>\n<p>Yukar\u0131daki gibi iki t\u00fcrl\u00fc yaz\u0131m uygularsan\u0131z, Kategoriler tablosundan Urunler tablosuna Urunlers diye ula\u015f\u0131rken, Urunler tablosundan Kategoriler tablosuna Kategoriler diye ula\u015f\u0131yoruz.<br \/>\nUrunler tablosunun sonuna &#8220;s&#8221; harfi gelirken neden Kategoriler tablosunun sonuna gelmedi diye sorarsan\u0131z e\u011fer her \u00fcr\u00fcn\u00fcn bir tane Kategorisi olur, ama her kategorinin birden fazla \u00fcr\u00fcn\u00fc olabilir.Bu y\u00fczden LINQ teknolojisi programatik zekayada sahip oldu\u011fu anla\u015f\u0131l\u0131yor \ud83d\ude42<br \/>\n20 ya da daha fazla sat\u0131\u015f yap\u0131lan m\u00fc\u015fterilmiz ?<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nNorthwindDataContext Northwind = new NorthwindDataContext();\r\nvar Sonuc = from musteri in Northwind.Musterilers\r\nwhere musteri.Satislars.Count &gt;= 20\r\nselect new\r\n{\r\nMusteriAdi = musteri.MusteriAdi\r\n};\r\nforeach (var item in Sonuc)\r\n{\r\nlistBox1.Items.Add(item.MusteriAdi);\r\n}\r\n<\/pre>\n<p>Blauer See Delikatessen isimli \u015firkete yap\u0131lan sat\u0131\u015flar\u0131n toplam fiyat\u0131?<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nNorthwindDataContext Northwind = new NorthwindDataContext();\r\nvar Sonuc = (from detay in Northwind.Satis_Detaylaris\r\nwhere detay.Satislar.Musteriler.SirketAdi == &quot;Blauer See Delikatessen&quot;\r\nselect detay.Miktar * detay.BirimFiyati).Sum();\r\nlistBox1.Items.Add(Sonuc);\r\n<\/pre>\n<p>LINQ TO SQL hakk\u0131ndaki yaz\u0131mda burada son bulmu\u015ftur.<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere &#8230;<br \/>\n\u0130yi \u00c7al\u0131\u015fmalar<\/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 teknolojisi tamamen veri eri\u015fim i\u015flemini daha kolay ve anla\u015f\u0131l\u0131r hale getirmek ama\u00e7l\u0131 tasarlanm\u0131\u015ft\u0131r.Bu veri eri\u015fim y\u00f6ntemleri LINQ TO XML, LINQ TO OBJECT ve LINQ TO SQL olarak veri kayna\u011f\u0131na g\u00f6re de\u011fi\u015fiklik g\u00f6stermektedir.Ben burada&#46;&#46;&#46;<!-- 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":[229],"class_list":["post-618","post","type-post","status-publish","format-standard","hentry","category-asp-net","category-c-sharp-c","category-linq","tag-linq-to-sql"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/618","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=618"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/618\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}