﻿
{"id":3871,"date":"2016-04-03T04:17:48","date_gmt":"2016-04-03T04:17:48","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=3871"},"modified":"2016-04-03T04:17:49","modified_gmt":"2016-04-03T04:17:49","slug":"entity-framework-code-first-ile-stored-procedure-kullanimi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/entity-framework-code-first-ile-stored-procedure-kullanimi\/","title":{"rendered":"Entity Framework &#8211; Code First \u0130le Stored Procedure Kullan\u0131m\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bir \u00f6nceki <a href=\"http:\/\/www.gencayyildiz.com\/blog\/entity-framework-code-first-ile-stored-procedure-olusturma\/\" target=\"_blank\">Entity Framework &#8211; Code First \u0130le Stored Procedure Olu\u015fturma<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131mda EF&#8217;de nas\u0131l SP olu\u015fturuldu\u011funu detayl\u0131ca irdelemi\u015ftik. Bu yaz\u0131m\u0131zda ise EF&#8217;de SP nas\u0131l kullan\u0131l\u0131r? sorusunun cevab\u0131n\u0131 ayn\u0131 hassasiyette verece\u011fiz.<\/p>\n<p>EF &#8211; Code First yakla\u015f\u0131m\u0131nda SP kullanmak istiyorsak e\u011fer yapmam\u0131z gereken olduk\u00e7a basittir. Elimizde a\u015fa\u011f\u0131daki gibi bir SP oldu\u011funu varsayarsak e\u011fer;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            CreateStoredProcedure(\r\n             &quot;dbo.OrnekSP&quot;,\r\n             p =&amp;gt; new\r\n             {\r\n\r\n             },\r\n             body:\r\n                 @&quot;\r\n                    Insert Ogrenciler Values('Gen\u00e7ay', 'Y\u0131ld\u0131z', 'Artvin')  \r\n                  &quot;\r\n                                 );\r\n<\/pre>\n<p>bu SP&#8217;yi a\u015fa\u011f\u0131daki gibi \u00e7al\u0131\u015ft\u0131rabiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            OkulDBContext Veri = new OkulDBContext();\r\n            Veri.Database.ExecuteSqlCommand(&quot;OrnekSP&quot;);\r\n<\/pre>\n<p>Context s\u0131n\u0131f\u0131 \u00fczerinden veritan\u0131nda bir SQL sorgusunu &#8220;.Database.ExecuteSqlCommand&#8221; komutu ile \u00e7al\u0131\u015ft\u0131rabiliyoruz. Haliyle ExecuteSqlCommand metoduna verdi\u011fimiz sorgu ilgili veritaban\u0131 \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131lacaksa, o sorgu yerine SP&#8217;mizin ismi olan &#8220;OrnekSP&#8221; sorgusunu yaz\u0131yor ve \u00e7al\u0131\u015ft\u0131r\u0131yoruz.<\/p>\n<p>SP&#8217;mizin i\u00e7eri\u011fi Insert sorgusundan olu\u015ftu\u011fu i\u00e7in haliyle \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 &#8220;Ogrenciler&#8221; tablosunu kontrol ederek anlayabiliriz.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/entity-framework-code-first-ile-stored-procedure-kullanimi\/entity-framework-code-first-ile-stored-procedure-kullanimi\/\" rel=\"attachment wp-att-3873\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3873\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131.png\" alt=\"Entity Framework - Code First \u0130le Stored Procedure Kullan\u0131m\u0131\" width=\"445\" height=\"100\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131.png 445w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-300x67.png 300w\" sizes=\"auto, (max-width: 445px) 100vw, 445px\" \/><\/a><br \/>\nG\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi SP&#8217;mizi ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131rabildik.<\/p>\n<p>Peki&#8230; \u015eimdide parametre alan bir SP olu\u015ftural\u0131m ve onu kullanal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            CreateStoredProcedure(\r\n             &quot;dbo.OrnekParametreliSP&quot;,\r\n             p =&amp;gt; new\r\n             {\r\n                 OgrenciID = p.Int(),\r\n                 Adi = p.String(),\r\n                 SoyAdi = p.String(),\r\n                 Memleketi = p.String()\r\n             },\r\n             body:\r\n                 @&quot;\r\n                    Update Ogrenciler Set Adi = @Adi, SoyAdi = @SoyAdi, Memleketi = @Memleketi where OgrenciID = @OgrenciID\r\n                  &quot;\r\n                                 );\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi SP&#8217;miz &#8220;OgrenciID&#8221;, &#8220;Adi&#8221;, &#8220;SoyAdi&#8221; ve &#8220;Memleketi&#8221; olmak \u00fczere d\u00f6rt adet parametre almaktad\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            OkulDBContext Veri = new OkulDBContext();\r\n            SqlParameter pOgrenciID = new SqlParameter(&quot;@OgrenciID&quot;, 1);\r\n            SqlParameter pAdi = new SqlParameter(&quot;@Adi&quot;, &quot;K\u00fcr&quot;);\r\n            SqlParameter pSoyAdi = new SqlParameter(&quot;@SoyAdi&quot;, &quot;\u015ead&quot;);\r\n            SqlParameter pMemleketi = new SqlParameter(&quot;@Memleketi&quot;, &quot;\u00d6t\u00fcken&quot;);\r\n            Veri.Database.ExecuteSqlCommand(&quot;OrnekParametreliSP @OgrenciID, @Adi, @SoyAdi, @Memleketi&quot;, pOgrenciID, pAdi, pSoyAdi, pMemleketi);\r\n<\/pre>\n<p>Yukar\u0131daki gibi &#8220;OrnekParametreliSP&#8221; isimli SP&#8217;yi \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m parametre s\u0131ras\u0131na dikkat ederek gereken de\u011ferleri g\u00f6ndermekteyim. Tabi bu de\u011ferleri g\u00f6nderirken her bir parametreyi SqlParameter tipinden bir nesnede tutmakta ve ExecuteSqlCommand metodunu \u00e7a\u011f\u0131r\u0131rken sorgu i\u00e7erisinde parametre de\u011ferlerini vermekteyim. Nihayetinde parametre tan\u0131mlarken verdi\u011fimiz s\u0131ra, bu \u015fekilde kullan\u0131mda da \u00f6ncelik \u00f6nemine sahip oldu\u011fu i\u00e7in parametreleri g\u00f6nderirken bu s\u0131ralamaya dikkat etmekteyim.<\/p>\n<p>\u015eimdide output bir parametre alan SP \u00fczerinde \u00e7al\u0131\u015fmam\u0131z\u0131 yapal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            CreateStoredProcedure(\r\n             &quot;dbo.OrnekOutPutParametreliSP&quot;,\r\n             p =&amp;gt; new\r\n             {\r\n                 OutParametre = p.String(outParameter: true)\r\n             },\r\n             body:\r\n                 @&quot;\r\n                    Select @OutParametre = 'Gen\u00e7ay YILDIZ'\r\n                  &quot;\r\n                                 );\r\n<\/pre>\n<p>Kullan\u0131m\u0131 ise a\u015fa\u011f\u0131daki gibidir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            OkulDBContext Veri = new OkulDBContext();\r\n\r\n            SqlParameter pOutParametre = new SqlParameter(&quot;@OutParametre&quot;, System.Data.SqlDbType.NVarChar)\r\n            {\r\n                Direction = System.Data.ParameterDirection.Output\r\n            };\r\n\r\n            Veri.Database.ExecuteSqlCommand(&quot;OrnekOutPutParametreliSP @OutParametre out&quot;, pOutParametre);\r\n<\/pre>\n<p>E\u011fer bu \u015fekilde bir kullan\u0131ma yeltenirsek a\u015fa\u011f\u0131daki hatay\u0131 alaca\u011f\u0131z.<\/p>\n<blockquote>\n<p style=\"text-align: center;\"><em><strong><span style=\"color: #ff0000;\"> An unhandled exception of type &#8216;System.InvalidOperationException&#8217; occurred in EntityFramework.SqlServer.dll<\/span><\/strong><\/em><\/p>\n<p style=\"text-align: center;\"><em><strong><span style=\"color: #ff0000;\">Additional information: String[0]: Size \u00f6zelli\u011finin 0 olan boyutu ge\u00e7ersiz.<\/span><\/strong><\/em><\/p>\n<\/blockquote>\n<p>Hatam\u0131z\u0131n g\u00f6rsel hali ise;<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/entity-framework-code-first-ile-stored-procedure-kullanimi\/entity-framework-code-first-ile-stored-procedure-kullanimi-2\/\" rel=\"attachment wp-att-3875\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-1.png\" alt=\"Entity Framework - Code First \u0130le Stored Procedure Kullan\u0131m\u0131\" width=\"442\" height=\"118\" class=\"aligncenter size-full wp-image-3875\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-1.png 442w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-1-300x80.png 300w\" sizes=\"auto, (max-width: 442px) 100vw, 442px\" \/><\/a><\/p>\n<p><strong>Peki bu hata neden kaynaklanmaktad\u0131r?<\/strong><br \/>\nE\u011fer string(nvarchar) tipinde bir Output parametre kullan\u0131yorsak ve yukar\u0131daki gibi SqlParameter tipinden bir nesne \u00fczerinde veri ta\u015f\u0131yorsak bu nesnenin tutaca\u011f\u0131 veri aral\u0131\u011f\u0131n\u0131n boyunu belirtmemiz gerekmektedir.<br \/>\nDaha do\u011frusu, Output olarak verilecek string(nvarchar) parametrenin SP&#8217;deki aral\u0131\u011f\u0131 ne ise en az o aral\u0131kta bir parametre olu\u015fturmal\u0131y\u0131z.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            OkulDBContext Veri = new OkulDBContext();\r\n            SqlParameter pOutParametre = new SqlParameter(&quot;@OutParametre&quot;, System.Data.SqlDbType.NVarChar, int.MaxValue)\r\n            {\r\n                Direction = System.Data.ParameterDirection.Output\r\n            };\r\n            Veri.Database.ExecuteSqlCommand(&quot;OrnekOutPutParametreliSP @OutParametre out&quot;, pOutParametre);\r\n<\/pre>\n<p>\u0130\u015fte boyutumuzuda constructerdan vererek hatam\u0131z\u0131 d\u00fczeltmi\u015f olduk.<\/p>\n<p>Bakal\u0131m pOutParametre isimli parametremize i\u00e7eriden de\u011fer gelmi\u015f mi?<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/entity-framework-code-first-ile-stored-procedure-kullanimi\/entity-framework-code-first-ile-stored-procedure-kullanimi-3\/\" rel=\"attachment wp-att-3877\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-2.png\" alt=\"Entity Framework - Code First \u0130le Stored Procedure Kullan\u0131m\u0131\" width=\"712\" height=\"215\" class=\"aligncenter size-full wp-image-3877\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-2.png 712w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-2-300x91.png 300w\" sizes=\"auto, (max-width: 712px) 100vw, 712px\" \/><\/a><br \/>\nG\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi ilgili veriyi Output parametremiz getirmi\u015f bulunmaktad\u0131r.<\/p>\n<p>Fark\u0131ndaysan\u0131z \u015fuana kadar kulland\u0131\u011f\u0131m\u0131z SP&#8217;lerin hi\u00e7biri i\u00e7erisinde tablo d\u00f6nen Select sorgusu bar\u0131nd\u0131rmamaktad\u0131r. Haliyle son olarak geriye bir tablo d\u00f6necek sorguyu bar\u0131nd\u0131ran SP kullan\u0131m\u0131n\u0131 irdeleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            CreateStoredProcedure(\r\n             &quot;dbo.OgrencilerSP&quot;,\r\n             p =&gt; new\r\n             {\r\n\r\n             },\r\n             body:\r\n                 @&quot;\r\n                    Select * from Ogrenciler\r\n                  &quot;\r\n                                 );\r\n<\/pre>\n<blockquote><p>SP sonucunda geriye d\u00f6necek tabloyu temsil edecek bir Entity model olu\u015fturulmal\u0131d\u0131r.<\/p><\/blockquote>\n<p>E\u011fer ki, SP sonucu d\u00f6necek olan tablo farkl\u0131 i\u015flemler sonucu olu\u015fturulmu\u015f bir tablo ise o tabloyu temsil edecek Entity gerekece\u011fini ba\u015ftan s\u00f6yleyelim. Yok e\u011fer SP sonucu gelen tablolar fiziksel tablolar\u0131n birebir ayn\u0131lar\u0131 ise onlar\u0131 table classlar\u0131 temsil edebilmektedir.<\/p>\n<p>Haliyle yukar\u0131daki SP sonucunda Ogrenciler tablosu gelece\u011fi i\u00e7in &#8220;Ogrenciler&#8221; tablosunu temsil eden entityi tip olarak kullanabilece\u011fiz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            OkulDBContext Veri = new OkulDBContext();\r\n            var Ogrenciler = Veri.Database.SqlQuery&lt;Ogrenci&gt;(&quot;OgrencilerSP&quot;).ToList();\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer SP&#8217;den d\u00f6necek olan bir tablo mevzu bahis oldu\u011fu i\u00e7in &#8220;SqlQuery&#8221; metoduyla \u00e7al\u0131\u015fmaktay\u0131z. Haliyle SP sonucu elde edilen tabloyu sat\u0131r sat\u0131r, bu Generic metoda verdi\u011fimiz tipte olu\u015fturdu\u011fu nesneler olarak tutmaktad\u0131r. Tablonun kolon isimleri ile, tipin property isimleri birbirini destekliyorsa hatas\u0131z bu i\u015flemi ger\u00e7ekle\u015ftirecek ve bize veri k\u00fcmesini ilgili nesne tipinde dolduracakt\u0131r.<\/p>\n<p>Bakal\u0131m \u00e7al\u0131\u015f\u0131yor mu?<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/entity-framework-code-first-ile-stored-procedure-kullanimi\/entity-framework-code-first-ile-stored-procedure-kullanimi-4\/\" rel=\"attachment wp-att-3881\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-3.png\" alt=\"Entity Framework - Code First \u0130le Stored Procedure Kullan\u0131m\u0131\" width=\"586\" height=\"179\" class=\"aligncenter size-full wp-image-3881\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-3.png 586w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-3-300x92.png 300w\" sizes=\"auto, (max-width: 586px) 100vw, 586px\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi net bir \u015fekilde verilerimizi elde ettik.<\/p>\n<p><strong>Peki SqlQuery metodunda parametreli SP kullanmaya \u00e7al\u0131\u015f\u0131rsak nas\u0131l olur?<\/strong><br \/>\nBakal\u0131m nas\u0131l oluyormu\u015f&#8230;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            CreateStoredProcedure(\r\n             &quot;dbo.OgrencilerSP&quot;,\r\n             p =&gt; new\r\n             {\r\n                 OgrenciID = p.Int()\r\n             },\r\n             body:\r\n                 @&quot;\r\n                    Select * from Ogrenciler where OgrenciID = @OgrenciID\r\n                  &quot;\r\n                                 );\r\n<\/pre>\n<p>Kullanaca\u011f\u0131m\u0131z SP yukar\u0131dad\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            SqlParameter pOgrenciID = new SqlParameter(&quot;@OgrenciID&quot;, 1);\r\n            OkulDBContext Veri = new OkulDBContext();\r\n            var Ogrenciler = Veri.Database.SqlQuery&lt;Ogrenci&gt;(&quot;OgrencilerSP @OgrenciID&quot;, pOgrenciID).ToList();\r\n<\/pre>\n<p>Evet&#8230; G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi yukar\u0131daki i\u015flemlerde parametre konusunda ne yapt\u0131ysak, bunda da ayn\u0131 i\u015flemi ger\u00e7ekle\u015ftirmekteyiz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/entity-framework-code-first-ile-stored-procedure-kullanimi\/entity-framework-code-first-ile-stored-procedure-kullanimi-5\/\" rel=\"attachment wp-att-3884\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-4.png\" alt=\"Entity Framework - Code First \u0130le Stored Procedure Kullan\u0131m\u0131\" width=\"732\" height=\"166\" class=\"aligncenter size-full wp-image-3884\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-4.png 732w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Entity-Framework-Code-First-\u0130le-Stored-Procedure-Kullan\u0131m\u0131-4-300x68.png 300w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/a><br \/>\nG\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi sorunsuz \u00e7al\u0131\u015fmaktad\u0131r. <\/p>\n<p>San\u0131r\u0131m biraz a\u011f\u0131r bir yaz\u0131 oldu&#8230; Malumunuz ben internette bu konuda pek fazla T\u00fcrk\u00e7e kaynak olmamas\u0131 \u00fczerine olabilecek t\u00fcm hata ve durumlar\u0131 kapsayacak bir makale olsun istedim&#8230;<\/p>\n<p>Okudu\u011funuz i\u00e7in te\u015fekk\u00fcr ederim&#8230;<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/p>\n<p>\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/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>Merhaba, Bir \u00f6nceki Entity Framework &#8211; Code First \u0130le Stored Procedure Olu\u015fturma ba\u015fl\u0131kl\u0131 yaz\u0131mda EF&#8217;de nas\u0131l SP olu\u015fturuldu\u011funu detayl\u0131ca irdelemi\u015ftik. Bu yaz\u0131m\u0131zda ise EF&#8217;de SP nas\u0131l kullan\u0131l\u0131r? sorusunun cevab\u0131n\u0131 ayn\u0131 hassasiyette verece\u011fiz. EF &#8211;&#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":3739,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[955],"tags":[952,1003,1008,991,1004,963,1009,1010,124],"class_list":["post-3871","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-entity-framework","tag-code-first","tag-code-first-stored-procedure","tag-createstoredprocedure","tag-ef-code-first","tag-ef-stored-procedure","tag-entity-framework","tag-executesqlcommand","tag-sqlquery","tag-stored-procedure"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3871","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=3871"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3871\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3739"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=3871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=3871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=3871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}