{"id":789,"date":"2021-08-18T11:26:00","date_gmt":"2021-08-17T22:26:00","guid":{"rendered":"https:\/\/blog.wiseowls.co.nz\/?p=789"},"modified":"2026-03-08T00:48:39","modified_gmt":"2026-03-07T11:48:39","slug":"ef-core-6-0-does-our-imethodcalltranslator-hack-still-work","status":"publish","type":"post","link":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/","title":{"rendered":"EF Core 6 \u2013 does our IMethodCallTranslator still work?"},"content":{"rendered":"<p>A year and a half ago we <a href=\"https:\/\/blog.wiseowls.co.nz\/index.php\/2020\/01\/26\/custom-functions-ef-core-3\/\">posted an article<\/a> on how we were able to plug into EF Core pipeline and inject our own <code>IMethodCallTranslator<\/code>. That let us leverage SQL-native encryption functionality with EF Core 3.1 and was ultimately a win. A lot has changed in the ecosystem, we&#8217;ve got .NET 5 and and .NET 6 coming up soon. So, we could not help but wonder&#8230;<\/p>\n<h2 class=\"wp-block-heading\">Will it work with EF Core 6?<\/h2>\n<p>Apparently, EF6 is mostly an <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/the-plan-for-entity-framework-core-6-0\">evolutionary<\/a> step over EF5. That said, we totally missed previous version. So it is unclear to what extent the EF team has reworked their internal APIs. Most of the extensibility points we used were internal and clearly marked as &#8220;not for public consumption&#8221;. With that in mind, our concerns seemed valid.<\/p>\n<h2 class=\"wp-block-heading\">Turns out, the code needs change&#8230;<\/h2>\n<p>The first issue we needed to rectify was implementing <code>ShouldUseSameServiceProvider<\/code>: from what I can tell, it&#8217;s needed to cache services more efficiently, but in our case setting it to default value seems to make sense.<\/p>\n<p>But that&#8217;s where things really went sideways:<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"235\" src=\"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-8.png\" alt=\"Build error from EF Core 6 internal API changes breaking IMethodCallTranslator\" class=\"wp-image-947\" srcset=\"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-8.png 760w, https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-8-300x93.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n<p>Apparently adding our custom <code>IDbContextOptionsExtension<\/code> resets the cache and by the time EF arrives at Model initialisation, instance of DI container gets wiped, leaving us with a bunch of null references (including the one above).<\/p>\n<h2 class=\"wp-block-heading\">One line fix<\/h2>\n<p>I am still unsure why EF so upset when we add new extension. Stepping through the code would likely provide me with the answer but I feel it&#8217;s not worth the effort. Playing around with service scopes I however noticed that many built-in services get registered using different extension method with Scoped lifecycle. This prompted me to try change my registration method signature and voila:<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"834\" height=\"131\" src=\"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-9.png\" alt=\"Updated implementation compiling successfully with EF Core 6\" class=\"wp-image-948\" srcset=\"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-9.png 834w, https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-9-300x47.png 300w, https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-9-768x121.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"285\" src=\"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-10-1024x285.png\" alt=\"Updated implementation compiling successfully with EF Core 6\" class=\"wp-image-949\" srcset=\"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-10-1024x285.png 1024w, https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-10-300x84.png 300w, https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-10-768x214.png 768w, https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-10-1200x334.png 1200w, https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2021\/09\/image-10.png 1246w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n<p>And as usual, fully functioning code sits on <a href=\"https:\/\/github.com\/tkhadimullin\/ef-core-custom-functions\/tree\/feature\/ef-6.0-version\">GitHub<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A year and a half ago we posted an article on how we were able to plug into EF Core pipeline and inject our own IMethodCallTranslator. That let us leverage SQL-native encryption functionality with EF Core 3.1 and was ultimately a win. A lot has changed in the ecosystem, we&#8217;ve got .NET 5 and and &hellip; <a href=\"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;EF Core 6 \u2013 does our IMethodCallTranslator still work?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":391,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[11],"tags":[12,23,59],"class_list":["post-789","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","tag-c","tag-ef-core","tag-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>EF Core 6 \u2013 does our IMethodCallTranslator still work? - Timur and associates<\/title>\n<meta name=\"description\" content=\"A while ago we hacked into EF Core pipeline and injected our own IMethodCallTranslator to do custom SQL functions. But will it work with EF Core 6?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EF Core 6 \u2013 does our IMethodCallTranslator still work? - Timur and associates\" \/>\n<meta property=\"og:description\" content=\"A while ago we hacked into EF Core pipeline and injected our own IMethodCallTranslator to do custom SQL functions. But will it work with EF Core 6?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/\" \/>\n<meta property=\"og:site_name\" content=\"Timur and associates\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-17T22:26:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-07T11:48:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2020\/02\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1980\" \/>\n\t<meta property=\"og:image:height\" content=\"801\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"timur\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@TimurKh\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/\"},\"author\":{\"name\":\"timur\",\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/#\\\/schema\\\/person\\\/34d0ed30d573b5bc317ea990bd2e0c59\"},\"headline\":\"EF Core 6 \u2013 does our IMethodCallTranslator still work?\",\"datePublished\":\"2021-08-17T22:26:00+00:00\",\"dateModified\":\"2026-03-07T11:48:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/\"},\"wordCount\":294,\"image\":{\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg\",\"keywords\":[\"c#\",\"ef-core\",\"sql\"],\"articleSection\":[\"Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/\",\"url\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/\",\"name\":\"EF Core 6 \u2013 does our IMethodCallTranslator still work? - Timur and associates\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg\",\"datePublished\":\"2021-08-17T22:26:00+00:00\",\"dateModified\":\"2026-03-07T11:48:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/#\\\/schema\\\/person\\\/34d0ed30d573b5bc317ea990bd2e0c59\"},\"description\":\"A while ago we hacked into EF Core pipeline and injected our own IMethodCallTranslator to do custom SQL functions. But will it work with EF Core 6?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg\",\"contentUrl\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg\",\"width\":1980,\"height\":801},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/index.php\\\/2021\\\/08\\\/18\\\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"EF Core 6 \u2013 does our IMethodCallTranslator still work?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/#website\",\"url\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/\",\"name\":\"Timur and associates\",\"description\":\"Notes of an IT contractor\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.wiseowls.co.nz\\\/#\\\/schema\\\/person\\\/34d0ed30d573b5bc317ea990bd2e0c59\",\"name\":\"timur\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/23d55e17d4f0990ee4d12bc6e5dcfb58a292934efd62a185756876379e780b16?s=96&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/23d55e17d4f0990ee4d12bc6e5dcfb58a292934efd62a185756876379e780b16?s=96&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/23d55e17d4f0990ee4d12bc6e5dcfb58a292934efd62a185756876379e780b16?s=96&r=pg\",\"caption\":\"timur\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/TimurKh\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"EF Core 6 \u2013 does our IMethodCallTranslator still work? - Timur and associates","description":"A while ago we hacked into EF Core pipeline and injected our own IMethodCallTranslator to do custom SQL functions. But will it work with EF Core 6?","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:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/","og_locale":"en_US","og_type":"article","og_title":"EF Core 6 \u2013 does our IMethodCallTranslator still work? - Timur and associates","og_description":"A while ago we hacked into EF Core pipeline and injected our own IMethodCallTranslator to do custom SQL functions. But will it work with EF Core 6?","og_url":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/","og_site_name":"Timur and associates","article_published_time":"2021-08-17T22:26:00+00:00","article_modified_time":"2026-03-07T11:48:39+00:00","og_image":[{"width":1980,"height":801,"url":"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2020\/02\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg","type":"image\/jpeg"}],"author":"timur","twitter_card":"summary_large_image","twitter_creator":"@TimurKh","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/#article","isPartOf":{"@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/"},"author":{"name":"timur","@id":"https:\/\/blog.wiseowls.co.nz\/#\/schema\/person\/34d0ed30d573b5bc317ea990bd2e0c59"},"headline":"EF Core 6 \u2013 does our IMethodCallTranslator still work?","datePublished":"2021-08-17T22:26:00+00:00","dateModified":"2026-03-07T11:48:39+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/"},"wordCount":294,"image":{"@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2020\/02\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg","keywords":["c#","ef-core","sql"],"articleSection":["Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/","url":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/","name":"EF Core 6 \u2013 does our IMethodCallTranslator still work? - Timur and associates","isPartOf":{"@id":"https:\/\/blog.wiseowls.co.nz\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/#primaryimage"},"image":{"@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2020\/02\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg","datePublished":"2021-08-17T22:26:00+00:00","dateModified":"2026-03-07T11:48:39+00:00","author":{"@id":"https:\/\/blog.wiseowls.co.nz\/#\/schema\/person\/34d0ed30d573b5bc317ea990bd2e0c59"},"description":"A while ago we hacked into EF Core pipeline and injected our own IMethodCallTranslator to do custom SQL functions. But will it work with EF Core 6?","breadcrumb":{"@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/#primaryimage","url":"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2020\/02\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg","contentUrl":"https:\/\/blog.wiseowls.co.nz\/wp-content\/uploads\/2020\/02\/tobias-fischer-PkbZahEG2Ng-unsplash-scaled-e1582017537106.jpg","width":1980,"height":801},{"@type":"BreadcrumbList","@id":"https:\/\/blog.wiseowls.co.nz\/index.php\/2021\/08\/18\/ef-core-6-0-does-our-imethodcalltranslator-hack-still-work\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.wiseowls.co.nz\/"},{"@type":"ListItem","position":2,"name":"EF Core 6 \u2013 does our IMethodCallTranslator still work?"}]},{"@type":"WebSite","@id":"https:\/\/blog.wiseowls.co.nz\/#website","url":"https:\/\/blog.wiseowls.co.nz\/","name":"Timur and associates","description":"Notes of an IT contractor","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.wiseowls.co.nz\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.wiseowls.co.nz\/#\/schema\/person\/34d0ed30d573b5bc317ea990bd2e0c59","name":"timur","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/23d55e17d4f0990ee4d12bc6e5dcfb58a292934efd62a185756876379e780b16?s=96&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/23d55e17d4f0990ee4d12bc6e5dcfb58a292934efd62a185756876379e780b16?s=96&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/23d55e17d4f0990ee4d12bc6e5dcfb58a292934efd62a185756876379e780b16?s=96&r=pg","caption":"timur"},"sameAs":["https:\/\/x.com\/TimurKh"]}]}},"_links":{"self":[{"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/posts\/789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/comments?post=789"}],"version-history":[{"count":11,"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/posts\/789\/revisions"}],"predecessor-version":[{"id":1356,"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/posts\/789\/revisions\/1356"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/media\/391"}],"wp:attachment":[{"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/media?parent=789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/categories?post=789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.wiseowls.co.nz\/index.php\/wp-json\/wp\/v2\/tags?post=789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}