﻿
{"id":652,"date":"2012-05-23T20:13:04","date_gmt":"2012-05-23T20:13:04","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=652"},"modified":"2012-05-24T12:15:35","modified_gmt":"2012-05-24T12:15:35","slug":"linq-gruplamagroup-by","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/linq-gruplamagroup-by\/","title":{"rendered":"Linq To Sql Gruplama(Group By)"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bu yaz\u0131mda LINQ&#8217;da Group By ifadesinin nas\u0131l kullan\u0131ld\u0131\u011f\u0131ndan bahsedece\u011fim.<br \/>\n<!--more--><br \/>\nGruplama i\u015flemini daha somut anlatabilmek i\u00e7in a\u015fa\u011f\u0131daki \u00f6rne\u011fi inceleyiniz.<br \/>\nSpain \u00fclkesinde ya\u015fayan m\u00fc\u015fterilerimizi \u00e7ekip , \u015fehir ve m\u00fc\u015fteri id lerini yazd\u0131ral\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            NorthwindDataContext Northwind = new NorthwindDataContext();\r\n            var Sonuc = from musteri in Northwind.Musterilers\r\n                        where musteri.Ulke == &quot;Spain&quot;\r\n                        select musteri;\r\n            foreach (var item in Sonuc)\r\n            {\r\n                listBox1.Items.Add(item.Sehir + &quot; - &quot; + item.MusteriID);\r\n            }\r\n<\/pre>\n<p>Bu kod blo\u011funu derleyip \u00e7al\u0131\u015ft\u0131r\u0131rsak e\u011fer, a\u015fa\u011f\u0131daki gibi bir sonu\u00e7la kar\u015f\u0131la\u015f\u0131r\u0131z.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-653\" title=\"linq\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq.png\" alt=\"\" width=\"268\" height=\"189\" \/><\/a>\u00a0Burada gruplama i\u015flemi nas\u0131l kullan\u0131labilir.\u00d6ncelikle bunu konu\u015fal\u0131m.Madrid&#8217;de,Barcelona&#8217;da ve Sevilla&#8217;da ka\u00e7 m\u00fc\u015fteri mevcut? sorusuna cevap ar\u0131yorsan\u0131z e\u011fer gruplama i\u015flemi mecburidir.<br \/>\n\u00dc\u00e7 tane Madrid ve birer Barcelona ve Sevilla mevcut.Barcelona ve Sevilla tek oldu\u011fundan dolay\u0131 gruplamayla ilgili s\u0131k\u0131nt\u0131m\u0131z yok.Ancak \u00fc\u00e7 tane Madrid&#8217;i gruplamam\u0131z gerekiyor.Yani tek Madrid yapmam\u0131z gerekiyor. Bu i\u015flemleri SQL Server&#8217;da nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131, <a title=\"Transact Sql(String Fonk.-Matematik Fonk.-Tarih Fonk.-Top-Distinct-Escape-Group By-Having-Joinler-Insert-Update-Delete)\" href=\"http:\/\/www.gencayyildiz.com\/blog\/transact-sqlstring-fonk-matematik-fonk-tarih-fonk-top-distinct-escape-group-by-having-joinler-insert-update-delete\/\">Transact Sql(String Fonk.-Matematik Fonk.-Tarih Fonk.-Top-Distinct-Escape-Group By-Having-Joinler-Insert-Update-Delete)<\/a> isimli yaz\u0131mda anlatm\u0131\u015ft\u0131m.\u015eimdi LINQ teknolojisi ile yapmay\u0131 g\u00f6relim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            NorthwindDataContext Northwind = new NorthwindDataContext();\r\n            var Sonuc = from musteri in Northwind.Musterilers\r\n                        where musteri.Ulke == &quot;Spain&quot;\r\n                        group musteri by musteri.Sehir into Grup\r\n                        select new\r\n                        {\r\n                            Musteri = Grup,\r\n                            Sehir = Grup.Key\r\n                        };\r\n            foreach (var item in Sonuc)\r\n            {\r\n                listBox1.Items.Add(item.Sehir + &quot; \u015fehrinde &quot; + item.Musteri.Count() + &quot; adet m\u00fc\u015fterimiz mevcut.&quot;);\r\n                foreach (var musteri in item.Musteri)\r\n                {\r\n                    listBox1.Items.Add(&quot;--&gt;&quot; + musteri.MusteriID);\r\n                }\r\n            }\r\n<\/pre>\n<p>Yukar\u0131da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Group By ifadesi SQL Server versiyonundan biraz farkl\u0131.\u015eimdi bunu izah edeyim.<br \/>\n&#8221; group musteri by musteri.Sehir into Grup &#8221; \u00f6ncelikle bu sat\u0131r\u0131 ele alal\u0131m.<br \/>\n&#8220;group&#8221; anahtar s\u00f6zc\u00fc\u011f\u00fcnden sonraki &#8220;musteri&#8221; isimli parametre, hangi nesnenin gruplanaca\u011f\u0131n\u0131 belirtir.&#8221;by&#8221; anahtar s\u00f6zc\u00fc\u011f\u00fcnden sonraki ifadede, gruplanacak nesnenin(musteri) hangi propertysinin(\u00f6zellik) gruplanaca\u011f\u0131 belirtilir.&#8221;into&#8221; anahtar s\u00f6zc\u00fc\u011f\u00fcnden sonra &#8220;Grup&#8221; isimli parametrede ise bu grup saklan\u0131r.Buradaki parametrelerin isimlerini siz \u00f6zg\u00fcr iradelerinizle de\u011fi\u015ftirebilirsiniz.<br \/>\n&#8221;<br \/>\nselect new<br \/>\n{<br \/>\nMusteri = Grup,<br \/>\nSehir = Grup.Key<br \/>\n};<br \/>\n&#8221;<br \/>\n\u015eimdide bu kod blo\u011funu izah edeyim.&#8221;into&#8221; anahtar s\u00f6zc\u00fc\u011f\u00fcnden sonra &#8220;Grup&#8221; ad\u0131ndaki parametrenizin &#8220;Key&#8221; \u00f6zelli\u011fi, gruplanan propertyleri saklarken , &#8220;Grup&#8221; parametresinin kendisi, gruplanan &#8220;musteri&#8221; ad\u0131ndaki nesneyi saklar.<br \/>\nSonu\u00e7 olarak yukar\u0131daki kodlar\u0131n \u00e7\u0131kt\u0131s\u0131 a\u015fa\u011f\u0131daki gibi olacakt\u0131r.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-655\" title=\"linq2\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/05\/linq2.png\" alt=\"\" width=\"230\" height=\"113\" \/><\/a><\/p>\n<hr>\n<p>Son olarak yukar\u0131daki i\u015flemleri Extension metodla nas\u0131l yapabiliriz onu g\u00f6stermek istiyorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            NorthwindDataContext Northwind = new NorthwindDataContext();\r\n            var Sonuc = Northwind.Musterilers.Where(Musteri =&gt; Musteri.Ulke == &quot;Spain&quot;).GroupBy(Musteri =&gt; Musteri.Sehir);\r\n            foreach (var item in Sonuc)\r\n            {\r\n                listBox1.Items.Add(item.Key + &quot; \u015fehrinde &quot; + item.Count() + &quot; adet m\u00fc\u015fterimiz var.&quot;);\r\n                foreach (var Musteri in item)\r\n                {\r\n                    listBox1.Items.Add(&quot;--&gt;&gt;&quot; + Musteri.MusteriID);\r\n                }\r\n            }\r\n<\/pre>\n<hr>\n<p>Son bir \u00f6rnek yap\u0131p konuyu kapatmak istiyorum.<br \/>\nY\u0131la g\u00f6re elde etti\u011fimiz gelirler.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n\/\/LINQ teknolojisiyle..\r\n            NorthwindDataContext Northwind = new NorthwindDataContext();\r\n            var Sonuc = from detay in Northwind.Satis_Detaylaris\r\n                        group detay by detay.Satislar.SatisTarihi.Value.Year into Grup\r\n                        select new\r\n                        {\r\n                            Gelir = Grup.Sum(Satis =&gt; Satis.Miktar * Satis.BirimFiyati),\r\n                            Yil = Grup.Key\r\n                        };\r\n            foreach (var item in Sonuc)\r\n            {\r\n                listBox1.Items.Add(item.Yil + &quot; y\u0131l\u0131nda &quot; + item.Gelir + &quot; gelirimiz var&quot;);\r\n            }\r\n\/\/Extension metod ile\r\n            NorthwindDataContext Northwind = new NorthwindDataContext();\r\n            var Sonuc = Northwind.Satis_Detaylaris.GroupBy(Satis =&gt; Satis.Satislar.SatisTarihi.Value.Year);\r\n            foreach (var item in Sonuc)\r\n            {\r\n                listBox1.Items.Add(item.Key + &quot; y\u0131l\u0131nda toplam &quot; + item.Sum(Satis=&gt;Satis.Miktar * Satis.BirimFiyati) + &quot; gelir elde edilmi\u015ftir.&quot;);\r\n<\/pre>\n<p>Bu \u00f6rne\u011fide derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z zaman gruplanm\u0131\u015f \u015fekilde y\u0131llara g\u00f6re gelirleri g\u00f6sterdi\u011fini g\u00f6receksiniz.<br \/>\nArt\u0131k LINQ&#8217;da Group By anahtar s\u00f6zc\u00fc\u011f\u00fcyle gruplama i\u015flemini rahatl\u0131kla yapabiliriz.<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/p>\n<p>\u0130yi \u00c7al\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>Bu yaz\u0131mda LINQ&#8217;da Group By ifadesinin nas\u0131l kullan\u0131ld\u0131\u011f\u0131ndan bahsedece\u011fim.<!-- 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":[77,751],"class_list":["post-652","post","type-post","status-publish","format-standard","hentry","category-asp-net","category-c-sharp-c","category-linq","tag-group-by","tag-linq"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/652","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=652"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/652\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}