{"id":763,"date":"2022-10-29T17:21:19","date_gmt":"2022-10-29T17:21:19","guid":{"rendered":"https:\/\/okankaradag.com\/?p=763"},"modified":"2022-10-29T17:22:08","modified_gmt":"2022-10-29T17:22:08","slug":"entityframework-core-ile-many-to-many-coka-cok-iliski","status":"publish","type":"post","link":"https:\/\/okankaradag.com\/en\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski","title":{"rendered":"EntityFramework Core Many to Many"},"content":{"rendered":"<p>In this post, we going to look how to use many to many relationship at entityframewok core 6.0.<\/p>\n\n\n\n<h5 id=\"tanim\">Definition<\/h5>\n\n\n\n<p class=\" translation-block\">Many to many relationship to explain by example, we can express it like this; <em> every movie has more than one actor, every actor has more than one movie well as <\/em><\/p>\n\n\n\n<h5 id=\"giris\">Intro<\/h5>\n\n\n\n<p>Let's start by installing the following ef core packages.<\/p>\n\n\n\n<p><strong>Install-Package Microsoft.EntityFrameworkCore<\/strong><\/p>\n\n\n\n<p><strong>Install-Package Microsoft.EntityFrameworkCore.Tools<\/strong><\/p>\n\n\n\n<p class=\" translation-block\">Firstly, We define two entity called <strong>Post <\/strong>and <strong>Tag <\/strong>. Every post could has more than one Tag, every tag could has more than one Post.<\/p>\n\n\n\n<h5 id=\"cozum-1\">First Solution<\/h5>\n\n\n\n<p><strong>Post.cs<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true\">public class Post\n{\n    public int Id { get; set; }\n    public string Title { get; set; } = string.Empty;\n    public string Content { get; set; } = string.Empty;\n\n    public virtual ICollection&lt;Tag&gt;? Tags { get; set; }\n}<\/pre><\/div>\n\n\n\n<p><strong>Tag.cs<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true\">public class Tag\n{\n    public int Id { get; set; }\n    public string Name { get; set; } = string.Empty;\n\n    public virtual ICollection&lt;Post&gt;? Posts { get; set; }\n}<\/pre><\/div>\n\n\n\n<p class=\" translation-block\">In this state, first migration will create then ef core will create table called <strong>PostTag <\/strong> automatically but we cant access as class to this table.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"635\" height=\"372\" src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2022\/09\/manytomany.png\" alt=\"\" class=\"wp-image-766\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2022\/09\/manytomany.png 635w, https:\/\/okankaradag.com\/wp-content\/uploads\/2022\/09\/manytomany-300x176.png 300w, https:\/\/okankaradag.com\/wp-content\/uploads\/2022\/09\/manytomany-18x12.png 18w\" sizes=\"(max-width: 635px) 100vw, 635px\" \/><\/figure>\n\n\n\n<p>Alternatively We can define the relationship using fluent api.<\/p>\n\n\n\n<h5 id=\"ara-tabloyu-manuel-olarak-ekleme-ve-fluentapi-ile-iliskilendirme-cozum-2\" class=\" translation-block\"><strong>Common table as manuel and FluentApi usage<\/strong> (Second Solution)<\/h5>\n\n\n\n<p>The difference of the method below between above is that we create the indermate table, so we can check on table.<\/p>\n\n\n\n<p><strong>PostTag.cs<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true\">public class PostTag\n{\n    public int PostId { get; set; }\n    public int TagId { get; set; }\n\n    public virtual Post Post { get; set; }\n    public virtual Tag Tag { get; set; }\n}<\/pre><\/div>\n\n\n\n<p><strong>Post.cs<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true\">public class Post\n{\n    public int Id { get; set; }\n    public string Title { get; set; } = string.Empty;\n    public string Content { get; set; } = string.Empty;\n\n    public virtual ICollection&lt;PostTag&gt; PostTags { get; set; }\n\n}<\/pre><\/div>\n\n\n\n<p><strong>Tag.cs<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true\">public class Tag\n{\n    public int Id { get; set; }\n    public string Name { get; set; } = string.Empty;\n\n    public virtual ICollection&lt;PostTag&gt; PostTags { get; set; }\n}<\/pre><\/div>\n\n\n\n<h5 id=\"fluentapi\"><strong>FluentApi<\/strong><\/h5>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true\"> modelBuilder.Entity&lt;PostTag&gt;()\n         .HasKey(pt =&gt; new { pt.PostId, pt.TagId });\n    modelBuilder.Entity&lt;PostTag&gt;().HasOne(pt =&gt; pt.Post)\n        .WithMany(p =&gt; p.PostTags)\n        .HasForeignKey(pt =&gt; pt.PostId);\n    modelBuilder.Entity&lt;PostTag&gt;().HasOne(pt =&gt; pt.Tag)\n        .WithMany(p =&gt; p.PostTags)\n        .HasForeignKey(pt =&gt; pt.TagId);<\/pre><\/div>\n\n\n\n<h5 id=\"crud-islemleri-ekleme-guncelleme-silme\">Crud operations (Create - Update - Delete)<\/h5>\n\n\n\n<p id=\"ekleme\"><strong>Create<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:default decode:true\">var post = new Post\n{\n    Content = \"Post Content\",\n    Title = \"Post Title\",\n    Tags = new List&lt;Tag&gt;\n    {\n        new Tag\n        {\n            Name = \"Tag 1\"\n        },\n        new Tag\n        {\n            Name = \"Tag 2\"\n        }\n     }\n};\ndbContext.Posts.Add(post);\ndbContext.SaveChanges();<\/pre><\/div>\n\n\n\n<p><strong>Add to Exist Record<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true\">var tagIds = new int[] { 1, 2 }; \/\/exist tags\nvar tags = dbContext.Tags.Where(t =&gt; tagIds.Contains(t.Id)).ToList();\n                        \nvar post = new Post\n{\n    Content = \"Post Content 2\",\n    Title = \"Post Title 2\",\n    Tags = tags\n};\n\ndbContext.Posts.Add(post);\ndbContext.SaveChanges();<\/pre><\/div>\n\n\n\n<p><strong>Update<\/strong><\/p>\n\n\n\n<p class=\" translation-block\">At <strong>Many to Many<\/strong>  relationships could has more than one update cases. For example we update post entity and the payload are content, title etc.  tags are string array. In this case, we could happen this cases:<\/p>\n\n\n\n<ul><li>Exist tags could come again.<\/li><li>All tags can remove.<\/li><li>New tags could added. (at the tags table)<\/li><\/ul>\n\n\n\n<p class=\" translation-block\">The three case can be at same time therefore all cases can be done in single code block. Firstly we're remove all tags of the entity to be updated. Then we add it if exist in tags table, otherwise we create a new tag.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:default decode:true\">var newTags = new string[] { \"Tag 1\", \"Tag 2\", \"Tag 3\" };\nvar post = dbContext.Posts.Include(p =&gt; p.Tags).FirstOrDefault();\nArgumentNullException.ThrowIfNull(post);\npost.Tags.Clear();\nforeach (var item in newTags)\n{\n    var existItem = dbContext.Tags.FirstOrDefault(x =&gt; x.Name == item);\n    if (existItem == null)\n    {\n        var tag = new Tag { Name = item };\n        post.Tags.Add(tag);\n        continue;\n    }\n    post.Tags.Add(existItem);\n    }\n    dbContext.SaveChanges();\n}<\/pre><\/div>\n\n\n\n<p><strong>Delete<\/strong><\/p>\n\n\n\n<p class=\" translation-block\">We could remove the tags of post without any restrictions thus if we remove one record in tags table, removed from all posts associated with that tag. This operation is <strong>CascadeDelete<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true\">var tag = dbContext.Tags.FirstOrDefault(x =&gt; x.Name == \"Tag 1\");\nArgumentNullException.ThrowIfNull(tag);\ndbContext.Tags.Remove(tag);\ndbContext.SaveChanges();<\/pre><\/div>\n\n\n\n<p>G\u00f6nderinin sonuna geldik, okudu\u011funuz i\u00e7in te\u015fekk\u00fcrler \ud83d\ude42 ba\u015fka bir g\u00f6nderide g\u00f6r\u00fc\u015fmek \u00fczere.<\/p>","protected":false},"excerpt":{"rendered":"<p>In this post, we going to look how to use many to many relationship at entityframewok core 6.0.<\/p>","protected":false},"author":1,"featured_media":791,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[91,87,17,42],"tags":[108,45,105,109],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki - Okan Karada\u011f<\/title>\n<meta name=\"description\" content=\"Bu g\u00f6nderide entityframewok core ile \u00e7oka \u00e7ok ili\u015fki (many to many) nas\u0131l yap\u0131laca\u011f\u0131n\u0131 canl\u0131 \u00f6rneklerle inceleyece\u011fiz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/okankaradag.com\/en\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki - Okan Karada\u011f\" \/>\n<meta property=\"og:description\" content=\"Bu g\u00f6nderide entityframewok core ile \u00e7oka \u00e7ok ili\u015fki (many to many) nas\u0131l yap\u0131laca\u011f\u0131n\u0131 canl\u0131 \u00f6rneklerle inceleyece\u011fiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/okankaradag.com\/en\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\/\" \/>\n<meta property=\"og:site_name\" content=\"Okan Karada\u011f\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-29T17:21:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-29T17:22:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2022\/10\/photo-1509099836639-18ba1795216d.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"794\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Okan Karada\u011f\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Okan Karada\u011f\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski#article\",\"isPartOf\":{\"@id\":\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\"},\"author\":{\"name\":\"Okan Karada\u011f\",\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"headline\":\"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki\",\"datePublished\":\"2022-10-29T17:21:19+00:00\",\"dateModified\":\"2022-10-29T17:22:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\"},\"wordCount\":393,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"keywords\":[\"database\",\"dotnet core\",\"ef core\",\"many to many\"],\"articleSection\":[\".Net\",\".Net 6.0\",\"C#\",\"EntityFramework Core\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\",\"url\":\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\",\"name\":\"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki - Okan Karada\u011f\",\"isPartOf\":{\"@id\":\"https:\/\/okankaradag.com\/#website\"},\"datePublished\":\"2022-10-29T17:21:19+00:00\",\"dateModified\":\"2022-10-29T17:22:08+00:00\",\"description\":\"Bu g\u00f6nderide entityframewok core ile \u00e7oka \u00e7ok ili\u015fki (many to many) nas\u0131l yap\u0131laca\u011f\u0131n\u0131 canl\u0131 \u00f6rneklerle inceleyece\u011fiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/okankaradag.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/okankaradag.com\/#website\",\"url\":\"https:\/\/okankaradag.com\/\",\"name\":\"Okan Karada\u011f\",\"description\":\"Programlama \u00dczerine\",\"publisher\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/okankaradag.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\",\"name\":\"Okan Karada\u011f\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g\",\"caption\":\"Okan Karada\u011f\"},\"logo\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/okankaradag.com\"],\"url\":\"https:\/\/okankaradag.com\/en\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki - Okan Karada\u011f","description":"Bu g\u00f6nderide entityframewok core ile \u00e7oka \u00e7ok ili\u015fki (many to many) nas\u0131l yap\u0131laca\u011f\u0131n\u0131 canl\u0131 \u00f6rneklerle inceleyece\u011fiz.","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:\/\/okankaradag.com\/en\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\/","og_locale":"en_US","og_type":"article","og_title":"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki - Okan Karada\u011f","og_description":"Bu g\u00f6nderide entityframewok core ile \u00e7oka \u00e7ok ili\u015fki (many to many) nas\u0131l yap\u0131laca\u011f\u0131n\u0131 canl\u0131 \u00f6rneklerle inceleyece\u011fiz.","og_url":"https:\/\/okankaradag.com\/en\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski\/","og_site_name":"Okan Karada\u011f","article_published_time":"2022-10-29T17:21:19+00:00","article_modified_time":"2022-10-29T17:22:08+00:00","og_image":[{"width":1000,"height":794,"url":"https:\/\/okankaradag.com\/wp-content\/uploads\/2022\/10\/photo-1509099836639-18ba1795216d.jpg","type":"image\/jpeg"}],"author":"Okan Karada\u011f","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Okan Karada\u011f","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski#article","isPartOf":{"@id":"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski"},"author":{"name":"Okan Karada\u011f","@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"headline":"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki","datePublished":"2022-10-29T17:21:19+00:00","dateModified":"2022-10-29T17:22:08+00:00","mainEntityOfPage":{"@id":"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski"},"wordCount":393,"commentCount":0,"publisher":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"keywords":["database","dotnet core","ef core","many to many"],"articleSection":[".Net",".Net 6.0","C#","EntityFramework Core"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski#respond"]}]},{"@type":"WebPage","@id":"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski","url":"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski","name":"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki - Okan Karada\u011f","isPartOf":{"@id":"https:\/\/okankaradag.com\/#website"},"datePublished":"2022-10-29T17:21:19+00:00","dateModified":"2022-10-29T17:22:08+00:00","description":"Bu g\u00f6nderide entityframewok core ile \u00e7oka \u00e7ok ili\u015fki (many to many) nas\u0131l yap\u0131laca\u011f\u0131n\u0131 canl\u0131 \u00f6rneklerle inceleyece\u011fiz.","breadcrumb":{"@id":"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/okankaradag.com\/csharp\/entityframework-core-ile-many-to-many-coka-cok-iliski#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/okankaradag.com\/"},{"@type":"ListItem","position":2,"name":"EntityFramework Core ile Many to Many (\u00c7oka \u00e7ok) \u0130li\u015fki"}]},{"@type":"WebSite","@id":"https:\/\/okankaradag.com\/#website","url":"https:\/\/okankaradag.com\/","name":"Okan Karada\u011f","description":"Programlama \u00dczerine","publisher":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/okankaradag.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52","name":"Okan Karada\u011f","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/okankaradag.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g","caption":"Okan Karada\u011f"},"logo":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/okankaradag.com"],"url":"https:\/\/okankaradag.com\/en\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/763"}],"collection":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/comments?post=763"}],"version-history":[{"count":11,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/763\/revisions"}],"predecessor-version":[{"id":793,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/763\/revisions\/793"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/media\/791"}],"wp:attachment":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/media?parent=763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/categories?post=763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/tags?post=763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}