{"id":250,"date":"2015-06-13T13:35:24","date_gmt":"2015-06-13T10:35:24","guid":{"rendered":"https:\/\/gokhan-gokalp.com\/?p=250"},"modified":"2015-12-17T09:39:36","modified_gmt":"2015-12-17T07:39:36","slug":"goo-micro-orm","status":"publish","type":"post","link":"https:\/\/gokhan-gokalp.com\/tr\/goo-micro-orm\/","title":{"rendered":"Goo Micro ORM"},"content":{"rendered":"<p>Goo Micro ORM .Net i\u00e7in geli\u015ftirilmi\u015f strongly typed destekli, code-first yakla\u015f\u0131ml\u0131 basit bir a\u00e7\u0131k kaynak kodlu orm arac\u0131d\u0131r.<\/p>\n<p><b>Link:<\/b>\u00a0<a href=\"https:\/\/github.com\/GokGokalp\/Goo-Micro-ORM\" target=\"_blank\">https:\/\/github.com\/GokGokalp\/Goo-Micro-ORM<\/a><\/p>\n<h3>#\u00a0DESTEKLER\u0130<\/h3>\n<p>* \u015euan sadece MSSQL veritaban\u0131n\u0131 desteklemektedir.<br \/>\n* Veri modelinizi code-first yakla\u015f\u0131m\u0131 ile olu\u015fturman\u0131za olanak sa\u011flamaktad\u0131r.<br \/>\n* Basit tablo i\u015flemlerini ger\u00e7ekle\u015ftirebilmenizi sa\u011flamaktad\u0131r.<br \/>\n* Listeleme i\u015flemlerini type destekli bir \u015fekilde yapabilmenizi sa\u011flamaktad\u0131r.<br \/>\n* LINQ kullan\u0131m\u0131na olanak sa\u011flamaktad\u0131r.<br \/>\n* Caching i\u015flemlerini desteklemektedir.<br \/>\n* Transaction i\u015flemlerini desteklemektedir.<br \/>\n* Custom kompleks query yazabilmeye olanak sa\u011flamaktad\u0131r.<\/p>\n<h3>#\u00a0KULLANIMI<\/h3>\n<p>Goo Micro ORM&#8217;i projenize ekleyip ilgili connection ayarlar\u0131n\u0131 tan\u0131mlad\u0131ktan sonra kendi modelinizi olu\u015fturmaya hemen ba\u015flayabilirsiniz. UnitTest ortam\u0131 i\u00e7in\u00a0&#8220;<strong><em>GooNorthwind.sql<\/em><\/strong>&#8221; script&#8217;ini \u00e7al\u0131\u015ft\u0131rman\u0131z yeterlidir.<\/p>\n<p><strong><em>Typed deste\u011fini kullanabilmeniz i\u00e7in:<\/em><\/strong><br \/>\n* Kendi entitylerinizi <em>ModelBase<\/em> soyut s\u0131n\u0131f\u0131ndan t\u00fcretin.<br \/>\n* GooContext s\u0131n\u0131f\u0131n\u0131n \u00fcretilebilmesi\u00a0i\u00e7in\u00a0<em>GooContext.tt<\/em> \u015fablonu\u00a0i\u00e7indeki &#8220;<em>YOUR INFRASTRUCTURE LAYER PATH<\/em>&#8221; ve &#8220;<em>YOUR MODEL LAYER PATH<\/em>&#8221;\u00a0alanlar\u0131n\u0131\u00a0g\u00fcncellemeniz gerekmektedir.<br \/>\n* Kendi projeniz i\u00e7in ise <em>GooContext.tt<\/em> s\u0131n\u0131f\u0131n\u0131 ilgili model katman\u0131n\u0131z ile ayn\u0131 yerde bar\u0131nd\u0131rman\u0131z yeterlidir.<\/p>\n<p><strong><em>Propertyleri veritaban\u0131 taraf\u0131nda e\u015fleyebilmek i\u00e7in:<\/em><\/strong><br \/>\n* Entitylerinizi ilgili type attributeleri ile i\u015faretleyin.<\/p>\n<p><strong><em>Categories entitysi i\u00e7in \u00f6rnek bir model tan\u0131mlamas\u0131:<\/em><\/strong><\/p>\n<pre class=\"lang:c# decode:true\">using Goo.Attributes;\r\nusing Goo.OrmCore;\r\n\r\nnamespace Goo.UnitTest.Entities\r\n{\r\npublic class Categories : ModelBase\r\n{\r\n[IsPrimaryKey]\r\n[IsAutoIncrement(1, 1)]\r\npublic int CategoryID { get; set; }\r\n\r\n[NVARCHAR(15)]\r\n[NOTNULL]\r\npublic string CategoryName { get; set; }\r\n\r\n[NTEXT]\r\n[NULL]\r\npublic string Description { get; set; }\r\n\r\n[IMAGE]\r\n[NULL]\r\npublic byte[] Picture { get; set; }\r\n}\r\n}<\/pre>\n<p><em><strong>Desteklenen tipler:<\/strong><\/em> BOOLEAN, DATETIME, DECIMAL, IMAGE, INT, IsAutoIncrement, IsForeignKey, IsPrimaryKey, IsRelationEntity, MONEY, NCHAR, NONCLUSTEREDINDEX, NOTNULL, NTEXT, NULL, NVARCHAR, SMALLINT, TINYINT, VARCHAR<\/p>\n<h3>Veritaban\u0131 Modelleme<\/h3>\n<p><em>Entitylerinizi ModelBase soyut s\u0131n\u0131f\u0131ndan t\u00fcreterek olu\u015fturduktan sonra projeyi derledi\u011finizde Goo Micro ORM size GooContext wrapper s\u0131n\u0131f\u0131n\u0131 olu\u015fturacakt\u0131r.<\/em><\/p>\n<pre class=\"lang:c# decode:true\">DBInitializerManager dbInitializerManager = DBInitializerManager.getInstance;\r\n\r\ndbInitializerManager.InitializeDatabase();<\/pre>\n<p><strong><br \/>\nCreate\/Alter\/Drop\/Truncate\u00a0\u0130\u015flemleri<\/strong><\/p>\n<p><em>Tablo \u00fczerindeki i\u015flemlerinizi kolayl\u0131kla DBInitializerManager \u00fczerinden ger\u00e7ekle\u015ftirebilirsiniz.<\/em><\/p>\n<pre class=\"lang:c# decode:true\">DBInitializerManager dbInitializerManager = DBInitializerManager.getInstance;\r\n\r\ndbInitializerManager.DropTable();\r\ndbInitializerManager.CreateOrAlterTable();\r\ndbInitializerManager.TruncateTable();<\/pre>\n<h3>CRUD\u00a0\u0130\u015flemleri<\/h3>\n<p><em>GooContext s\u0131n\u0131f\u0131 \u00fczerinden insert\/update ve delete i\u015flemlerinizi yapabilirsiniz.<br \/>\n<\/em><br \/>\n<em>Entity ekleme:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContext gooContext = new GooContext();\r\n\r\nCategories category = new Categories()\r\n{\r\nCategoryName = \"Computer\",\r\nDescription = \"Insert test\"\r\n};\r\n\r\ngooContext.Categories.Insert(category);\r\n\r\nint result = gooContext.SubmitChanges();<\/pre>\n<p><em><br \/>\nEntity g\u00fcncelleme:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContex gooContext = new GooContext();\r\n\r\nCategories category = gooContext.Categories.FirstOrDefault();\r\n\r\ncategory.CategoryName = \"Computer Update\";\r\ncategory.Description = \"Update test\";\r\n\r\ngooContext.Categories.Update(category);\r\n\r\nint result = gooContext.SubmitChanges();<\/pre>\n<p><em><br \/>\nEntity silme:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContex gooContext = new GooContext();\r\n\r\nCategories category = gooContext.Categories.FirstOrDefault();\r\n\r\ngooContext.Categories.Delete(category);\r\n\r\nint result = gooContext.SubmitChanges();<\/pre>\n<p>&nbsp;<\/p>\n<h3>Read\u00a0\u0130\u015flemleri<\/h3>\n<p><em>GooContext s\u0131n\u0131f\u0131 \u00fczerinden listeleme, getirme ve \u00f6n belle\u011fe ekleme gibi i\u015flemleri yapabilirsiniz.<br \/>\n<\/em><br \/>\n<em>FirstOrDefault:<\/em><\/p>\n<pre class=\"lang:c# decode:true \">GooContext gooContext = new GooContext();\r\n\r\nOrders order = gooContext.Orders.Where(x=&gt;x.RequiredDate == DateTime.Now).FirstOrDefault();<\/pre>\n<p><em><br \/>\nToList:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContext gooContext = new GooContext();\r\n\r\nList orders = gooContext.Orders.ToList();<\/pre>\n<p><em><br \/>\nWhere:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContext gooContext = new GooContext();\r\n\r\nList orders = gooContext.Orders.Where(o =&gt; o.OrderDate &gt; DateTime.Parse(\"1997-12-31\") &amp;&amp; o.ShipCountry == \"Brazil\").ToList();<\/pre>\n<p><em><br \/>\nOrder ve\u00a0Take:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContext gooContext = new GooContext();\r\n\r\nList orders = gooContext.Orders.Where(o =&gt; o.OrderDate &gt; DateTime.Parse(\"1997-12-31\") &amp;&amp; o.ShipCountry == \"Brazil\").OrderByAscending(x =&gt; x.OrderID).Take(5).ToList();<\/pre>\n<p><em><br \/>\nCustom inline query:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContext gooContext = new GooContext();\r\n\r\nvar orders = gooContext.ExecuteCustomQuery(@\"SELECT * FROM Orders\r\nWHERE ShipCountry = 'Brazil' AND ShipVia = 3\");<\/pre>\n<p><em><br \/>\nAddToCache ve\u00a0GetFromCache:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContext gooContext = new GooContext();\r\n\r\n\/\/ Nesneyi \u00f6nbelle\u011fe varsay\u0131lan olarak limitsiz eklemeyi sa\u011flar.\r\nList ordersUntimed = gooContext.Orders.Where(o =&gt; o.OrderDate &gt; DateTime.Parse(\"1997-12-31\") &amp;&amp; o.ShipCountry == \"Brazil\").AddToCache(\"AddToCacheUntimed\").ToList();\r\n\r\n\/\/ Nesneyi \u00f6nbelle\u011fe belirlenen bir tarih boyunca eklemeyi sa\u011flar.\r\nList ordersTimed = gooContext.Orders.Where(o =&gt; o.OrderDate &gt; DateTime.Parse(\"1997-12-31\") &amp;&amp; o.ShipCountry == \"Brazil\").AddToCache(\"AddToCacheTimed\", CacheManager.EExpirationType.Expiration, new DateTime(2015, 6, 10)).ToList();\r\n\r\n\/\/ Nesneyi \u00f6nbelle\u011fe belirlenen bir s\u00fcre boyunca eklemeyi sa\u011flar.\r\nList ordersSlidingTimed = gooContext.Orders.Where(o =&gt; o.OrderDate &gt; DateTime.Parse(\"1997-12-31\") &amp;&amp; o.ShipCountry == \"Brazil\").AddToCache(\"AddToCacheSlidingTimed\", CacheManager.EExpirationType.SlidingExpiration, new TimeSpan(1, 0, 0)).ToList();\r\n\r\n\/\/ GetFromCache kullanarak daha \u00f6nceden \u00f6nbelle\u011fe eklemi\u015f oldu\u011funuz nesneye eri\u015fmenizi sa\u011flar. Nesne bulunamamas\u0131 durumunda geriye null d\u00f6nmektedir.\r\nList ordersGetFromCacheUntimed = gooContext.Orders.GetFromCache(\"AddToCacheUntimed\"); \/\/ \"AddToCacheTimed\" or \"AddToCacheSlidingTimed\"<\/pre>\n<p>&nbsp;<\/p>\n<h3>ORM Configuration<\/h3>\n<p><em>OrmConfiguration \u00f6zelli\u011fi size &#8220;LazyLoading, Connection ve Transaction&#8221; i\u015flemleri yapabilmenizi sa\u011flar.<br \/>\n<\/em><em><br \/>\nLazyLoading:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContex gooContext = new GooContext();\r\n\r\n\/\/ Lazy loading etkinle\u015ftirildi\u011finde, ili\u015fkilendirilen nesneler navigation bir property \u00fczerinden eri\u015filmeye \u00e7al\u0131\u015f\u0131ld\u0131\u011f\u0131nda y\u00fcklenecektir. (varsay\u0131lan false)\r\ngooContext.OrmConfiguration.LazyLoadingEnabled = true;\r\n\r\nOrders order = gooContext.Orders.FirstOrDefault();\r\norder.Customer...?<\/pre>\n<p><em><br \/>\nConnection:<\/em><\/p>\n<pre class=\"lang:c# decode:true\">GooContex gooContext = new GooContext();\r\n\r\n\/\/ Connection'a eri\u015fmeniz gereken durumlarda ba\u011flant\u0131y\u0131 sizin a\u00e7man\u0131z gerekmektedir. \u00a0\r\nvar connection = gooContext.OrmConfiguration.Connection; \/\/ .Open();<\/pre>\n<p><em><br \/>\nTransaction:<\/em><\/p>\n<pre class=\"lang:autoit decode:true\">GooContex gooContext = new GooContext();\r\n\r\nusing (var transaction = gooContext.OrmConfiguration.Connection.BeginTransaction())\r\n{\r\n\/\/ Transaction nesnesini orm'e kullanaca\u011f\u0131m\u0131z\u0131 belirtmeliyiz.\r\ngooContext.OrmConfiguration.UseTransaction(transaction);\r\n\r\nCategories category = gooContext.Categories.FirstOrDefault();\r\n\r\ncategory.Description = string.Format(\"{0} Updated\", category.Description);\r\n\r\ngooContext.Categories.Update(category);\r\n\r\nint result = gooContext.SubmitChanges();\r\n\r\nif (result &gt; -1)\r\ntransaction.Commit();\r\nelse\r\ntransaction.Rollback();\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h2># PERFORMANS TEST\u0130<\/h2>\n<p>`Select i\u015flemleri i\u00e7in performans testi (strongly typed)`<\/p>\n<table>\n<tbody>\n<tr style=\"background-color: #fff; border-top: 1px solid #ccc;\">\n<th>Metot<\/th>\n<th>S\u00fcre<\/th>\n<th>Adet<\/th>\n<\/tr>\n<tr style=\"background-color: #f8f8f8; border-top: 1px solid #ccc;\">\n<td>ToList()<\/td>\n<td>116ms<\/td>\n<td>500<\/td>\n<\/tr>\n<tr style=\"background-color: #f8f8f8; border-top: 1px solid #ccc;\">\n<td>Where(o =&gt; o.ShipVia == 3 &amp;&amp; o.RequiredDate &gt; DateTime.Parse(&#8220;1996-09-01&#8221;))<\/td>\n<td>130ms<\/td>\n<td>246<\/td>\n<\/tr>\n<tr style=\"background-color: #f8f8f8; border-top: 1px solid #ccc;\">\n<td>Where(o =&gt; o.ShipName.Contains(&#8220;al&#8221;))<\/td>\n<td>95ms<\/td>\n<td>87<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>`Select i\u015flemleri i\u00e7in performans testi (non-typed DBDataReader)`<\/p>\n<table>\n<tbody>\n<tr style=\"background-color: #fff; border-top: 1px solid #ccc;\">\n<th>Metot<\/th>\n<th>S\u00fcre<\/th>\n<th>Adet<\/th>\n<\/tr>\n<tr style=\"background-color: #f8f8f8; border-top: 1px solid #ccc;\">\n<td>ExecuteCustomQuery<\/td>\n<td>76ms<\/td>\n<td>500<\/td>\n<\/tr>\n<tr style=\"background-color: #f8f8f8; border-top: 1px solid #ccc;\">\n<td>ExecuteCustomQuery(&#8220;SELECT * FROM Orders WHERE ShipVia = 3 AND RequiredDate &gt; &#8216;1996-09-01&#8242;&#8221;)<\/td>\n<td>80ms<\/td>\n<td>246<\/td>\n<\/tr>\n<tr style=\"background-color: #f8f8f8; border-top: 1px solid #ccc;\">\n<td>ExecuteCustomQuery(&#8220;SELECT * FROM Orders WHERE ShipName LIKE &#8216;%al%'&#8221;)<\/td>\n<td>78ms<\/td>\n<td>87<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Goo Micro ORM .Net i\u00e7in geli\u015ftirilmi\u015f strongly typed destekli, code-first yakla\u015f\u0131ml\u0131 basit bir a\u00e7\u0131k kaynak kodlu orm arac\u0131d\u0131r. Link:\u00a0https:\/\/github.com\/GokGokalp\/Goo-Micro-ORM #\u00a0DESTEKLER\u0130 * \u015euan sadece MSSQL veritaban\u0131n\u0131 desteklemektedir. * Veri modelinizi code-first yakla\u015f\u0131m\u0131 ile olu\u015fturman\u0131za olanak sa\u011flamaktad\u0131r. * Basit tablo i\u015flemlerini ger\u00e7ekle\u015ftirebilmenizi sa\u011flamaktad\u0131r. * Listeleme i\u015flemlerini type&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/gokhan-gokalp.com\/tr\/goo-micro-orm\/\">Devam\u0131n\u0131 okuyun<span class=\"screen-reader-text\">Goo Micro ORM<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[58,63,62,60,57,59],"class_list":["post-250","post","type-post","status-publish","format-standard","hentry","category-orm","tag-net-micro-orm","tag-c-acik-kaynak-kodlu-orm","tag-c-open-source-orm","tag-c-orm-gelistirme","tag-goo-micro-orm","tag-orm","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"tr","enabled_languages":["en","tr"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"tr":{"title":false,"content":false,"excerpt":false}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Goo Micro ORM - G\u00f6khan G\u00f6kalp<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Goo Micro ORM - G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/\" \/>\n<meta property=\"og:site_name\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"article:published_time\" content=\"2015-06-13T10:35:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-12-17T07:39:36+00:00\" \/>\n<meta name=\"author\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/goo-micro-orm\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/goo-micro-orm\\\/\"},\"author\":{\"name\":\"G\u00f6khan G\u00f6kalp\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"headline\":\"Goo Micro ORM\",\"datePublished\":\"2015-06-13T10:35:24+00:00\",\"dateModified\":\"2015-12-17T07:39:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/goo-micro-orm\\\/\"},\"wordCount\":440,\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"keywords\":[\".Net Micro ORM\",\"C# A\u00e7\u0131k Kaynak Kodlu ORM\",\"C# Open Source ORM\",\"C# ORM Geli\u015ftirme\",\"Goo Micro ORM\",\"ORM\"],\"articleSection\":[\"ORM\"],\"inLanguage\":\"tr\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/goo-micro-orm\\\/\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/goo-micro-orm\\\/\",\"name\":\"Goo Micro ORM - G\u00f6khan G\u00f6kalp\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\"},\"datePublished\":\"2015-06-13T10:35:24+00:00\",\"dateModified\":\"2015-12-17T07:39:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/goo-micro-orm\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/goo-micro-orm\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/goo-micro-orm\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Goo Micro ORM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"description\":\"C# &amp; Python lover\",\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gokhan-gokalp.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"pronouns\":\"he\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"contentUrl\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"caption\":\"G\u00f6khan G\u00f6kalp\"},\"logo\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\"},\"sameAs\":[\"https:\\\/\\\/gokhan-gokalp.com\"],\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/tr\\\/author\\\/gok-gokalp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Goo Micro ORM - G\u00f6khan G\u00f6kalp","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/","og_locale":"tr_TR","og_type":"article","og_title":"Goo Micro ORM - G\u00f6khan G\u00f6kalp","og_url":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/","og_site_name":"G\u00f6khan G\u00f6kalp","article_published_time":"2015-06-13T10:35:24+00:00","article_modified_time":"2015-12-17T07:39:36+00:00","author":"G\u00f6khan G\u00f6kalp","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"G\u00f6khan G\u00f6kalp","Tahmini okuma s\u00fcresi":"5 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/#article","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/"},"author":{"name":"G\u00f6khan G\u00f6kalp","@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"headline":"Goo Micro ORM","datePublished":"2015-06-13T10:35:24+00:00","dateModified":"2015-12-17T07:39:36+00:00","mainEntityOfPage":{"@id":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/"},"wordCount":440,"publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"keywords":[".Net Micro ORM","C# A\u00e7\u0131k Kaynak Kodlu ORM","C# Open Source ORM","C# ORM Geli\u015ftirme","Goo Micro ORM","ORM"],"articleSection":["ORM"],"inLanguage":"tr"},{"@type":"WebPage","@id":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/","url":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/","name":"Goo Micro ORM - G\u00f6khan G\u00f6kalp","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/#website"},"datePublished":"2015-06-13T10:35:24+00:00","dateModified":"2015-12-17T07:39:36+00:00","breadcrumb":{"@id":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gokhan-gokalp.com\/goo-micro-orm\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gokhan-gokalp.com\/goo-micro-orm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gokhan-gokalp.com\/"},{"@type":"ListItem","position":2,"name":"Goo Micro ORM"}]},{"@type":"WebSite","@id":"https:\/\/gokhan-gokalp.com\/#website","url":"https:\/\/gokhan-gokalp.com\/","name":"G\u00f6khan G\u00f6kalp","description":"C# &amp; Python lover","publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gokhan-gokalp.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe","name":"G\u00f6khan G\u00f6kalp","pronouns":"he","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","url":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","contentUrl":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","caption":"G\u00f6khan G\u00f6kalp"},"logo":{"@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659"},"sameAs":["https:\/\/gokhan-gokalp.com"],"url":"https:\/\/gokhan-gokalp.com\/tr\/author\/gok-gokalp\/"}]}},"_links":{"self":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/comments?post=250"}],"version-history":[{"count":23,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/250\/revisions"}],"predecessor-version":[{"id":519,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/250\/revisions\/519"}],"wp:attachment":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/media?parent=250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/categories?post=250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/tags?post=250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}