{"id":28617,"date":"2020-06-10T10:18:13","date_gmt":"2020-06-10T17:18:13","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=28617"},"modified":"2020-06-10T10:20:13","modified_gmt":"2020-06-10T17:20:13","slug":"announcing-entity-framework-core-5-0-preview-5","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-entity-framework-core-5-0-preview-5\/","title":{"rendered":"Announcing Entity Framework Core 5.0 Preview 5"},"content":{"rendered":"<p>Today we are announcing the fifth preview release of <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore\/5.0.0-preview.5.20278.2\">EF Core 5.0<\/a>.<\/p>\n<p>The fifth previews of <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-net-5-0-preview-5\/\">.NET 5<\/a> and ASP.NET Core 5.0 are also available now.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p>The previews of EF Core 5.0 require .NET Standard 2.1. This means:<\/p>\n<ul>\n<li>EF Core 5.0 runs on .NET Core 3.1; it does not require .NET 5.\n<ul>\n<li>This may change in future previews depending on how the plan for .NET 5 evolves.<\/li>\n<\/ul>\n<\/li>\n<li>EF Core 5.0 runs on other platforms that support <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/platforms\/\">.NET Standard 2.1<\/a>.<\/li>\n<li>EF Core 5.0 will <strong>not<\/strong> run on .NET Standard 2.0 platforms, including .NET Framework.<\/li>\n<\/ul>\n<hr>\n<h2 id=\"how-to-get-ef-core-5-0-previews\">How to get EF Core 5.0 previews<\/h2>\n<p>EF Core is distributed exclusively as a set of NuGet packages.\nFor example, to add the SQL Server provider to your project, you can use the following command using the dotnet tool:<\/p>\n<pre><code class=\"lang-cmd\"><span class=\"hljs-selector-tag\">dotnet<\/span> <span class=\"hljs-selector-tag\">add<\/span> <span class=\"hljs-selector-tag\">package<\/span> <span class=\"hljs-selector-tag\">Microsoft<\/span><span class=\"hljs-selector-class\">.EntityFrameworkCore<\/span><span class=\"hljs-selector-class\">.SqlServer<\/span> <span class=\"hljs-selector-tag\">--version<\/span> 5<span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0-preview.5.20278.2<\/span>\r\n<\/code><\/pre>\n<p>The EF Core packages published today are:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore<\/a> &#8211; The main EF Core package<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.SqlServer\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.SqlServer<\/a> &#8211; Database provider for Microsoft SQL Server and SQL Azure<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Sqlite\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Sqlite<\/a> &#8211; Database provider for SQLite<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Cosmos\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Cosmos<\/a> &#8211; Database provider for Azure Cosmos DB<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.InMemory\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.InMemory<\/a> &#8211; The in-memory database provider<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Tools\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Tools<\/a> &#8211; EF Core PowerShell commands for the Visual Studio Package Manager Console<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Design\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Design<\/a> &#8211; Shared design-time components for EF Core tools<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite<\/a> &#8211; SQL Server support for spatial types<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite<\/a> &#8211; SQLite support for spatial types<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Proxies\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Proxies<\/a> &#8211; Lazy-loading and change-tracking proxies<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Abstractions\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Abstractions<\/a> &#8211; Decoupled EF Core abstractions<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Relational\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Relational<\/a> &#8211; Shared EF Core components for relational database providers<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Analyzers\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Analyzers<\/a> &#8211; C# analyzers for EF Core<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Sqlite.Core\/5.0.0-preview.5.20278.2\">Microsoft.EntityFrameworkCore.Sqlite.Core<\/a> &#8211; Database provider for SQLite without a packaged native binary<\/li>\n<\/ul>\n<p>We have also published the 5.0 preview 5 release of the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Data.Sqlite.Core\/5.0.0-preview.5.20278.2\">Microsoft.Data.Sqlite.Core<\/a> ADO.NET provider.<\/p>\n<h2 id=\"installing-dotnet-ef\">Installing dotnet ef<\/h2>\n<p>As with EF Core 3.0 and 3.1, the dotnet ef command-line tool is no longer included in the .NET Core SDK. Before you can execute EF Core migration or scaffolding commands, you&#39;ll have to install this package as either a global or local tool.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/efcore5preview5.jpg\" alt=\"dotnet-ef\"><\/p>\n<p>To install the preview tool globally, first uninstall any existing version with:<\/p>\n<pre><code class=\"lang-cmd\">dotnet tool <span class=\"hljs-keyword\">uninstall<\/span> <span class=\"hljs-comment\">--global dotnet-ef<\/span>\r\n<\/code><\/pre>\n<p>Then install with:<\/p>\n<pre><code class=\"lang-cmd\"><span class=\"hljs-comment\">dotnet<\/span> <span class=\"hljs-comment\">tool<\/span> <span class=\"hljs-comment\">install<\/span> <span class=\"hljs-literal\">-<\/span><span class=\"hljs-literal\">-<\/span><span class=\"hljs-comment\">global<\/span> <span class=\"hljs-comment\">dotnet<\/span><span class=\"hljs-literal\">-<\/span><span class=\"hljs-comment\">ef<\/span> <span class=\"hljs-literal\">-<\/span><span class=\"hljs-literal\">-<\/span><span class=\"hljs-comment\">version<\/span> <span class=\"hljs-comment\">5<\/span><span class=\"hljs-string\">.<\/span><span class=\"hljs-comment\">0<\/span><span class=\"hljs-string\">.<\/span><span class=\"hljs-comment\">0<\/span><span class=\"hljs-literal\">-<\/span><span class=\"hljs-comment\">preview.5.20278.2<\/span>\r\n<\/code><\/pre>\n<p>It&#39;s possible to use this new version of dotnet ef with projects that use older versions of the EF Core runtime.<\/p>\n<hr>\n<h2 id=\"what-s-new-in-ef-core-5-preview-5\">What&#39;s new in EF Core 5 Preview 5<\/h2>\n<p>We maintain documentation covering <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/what-is-new\/ef-core-5.0\/whatsnew\">new features introduced into each preview<\/a>.<\/p>\n<p>Some of the highlights from preview 4 are called out below. This preview also includes several bug fixes.<\/p>\n<h3 id=\"database-collations\">Database collations<\/h3>\n<p>The default collation for a database can now be specified in the EF model.\nThis will flow through to generated migrations to set the collation when the database is created.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\">modelBuilder.UseCollation(<span class=\"hljs-string\">\"German_PhoneBook_CI_AS\"<\/span>)<span class=\"hljs-comment\">;<\/span>\r\n<\/code><\/pre>\n<p>Migrations then generates the following to create the database on SQL Server:<\/p>\n<pre><code class=\"lang-sql\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">DATABASE<\/span> [<span class=\"hljs-keyword\">Test<\/span>]\r\n<span class=\"hljs-keyword\">COLLATE<\/span> German_PhoneBook_CI_AS;\r\n<\/code><\/pre>\n<p>The collation to use for specific database columns can also be specified.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\"> modelBuilder\r\n<span class=\"hljs-meta\">     .Entity<\/span>&lt;User&gt;()\r\n<span class=\"hljs-meta\">     .Property<\/span>(e =&gt; e.Name)\r\n<span class=\"hljs-meta\">     .UseCollation<\/span>(<span class=\"hljs-string\">\"German_PhoneBook_CI_AS\"<\/span>)<span class=\"hljs-comment\">;<\/span>\r\n<\/code><\/pre>\n<p>For those not using migrations, collations are now reverse-engineered from the database when scaffolding a DbContext.<\/p>\n<p>Finally, the <code>EF.Functions.Collate()<\/code> allows for ad-hoc queries using different collations.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\">context.Users.Single(<span class=\"hljs-function\"><span class=\"hljs-params\">e<\/span> =&gt;<\/span> EF.Functions.Collate(e.Name, <span class=\"hljs-string\">\"French_CI_AS\"<\/span>) == <span class=\"hljs-string\">\"Jean-Michel Jarre\"<\/span>);\r\n<\/code><\/pre>\n<p>This will generate the following query for SQL Server:<\/p>\n<pre><code class=\"lang-sql\"><span class=\"hljs-keyword\">SELECT<\/span> TOP(<span class=\"hljs-number\">2<\/span>) [u].[<span class=\"hljs-keyword\">Id<\/span>], [u].[<span class=\"hljs-keyword\">Name<\/span>]\r\n<span class=\"hljs-keyword\">FROM<\/span> [<span class=\"hljs-keyword\">Users<\/span>] <span class=\"hljs-keyword\">AS<\/span> [u]\r\n<span class=\"hljs-keyword\">WHERE<\/span> [u].[<span class=\"hljs-keyword\">Name<\/span>] <span class=\"hljs-keyword\">COLLATE<\/span> French_CI_AS = N<span class=\"hljs-string\">'Jean-Michel Jarre'<\/span>\r\n<\/code><\/pre>\n<p>Note that ad-hoc collations should be used with care as they can negatively impact database performance.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2273\">#2273<\/a>.<\/p>\n<h3 id=\"flow-arguments-into-idesigntimedbcontextfactory\">Flow arguments into IDesignTimeDbContextFactory<\/h3>\n<p>Arguments are now flowed from the command line into the <code>CreateDbContext<\/code> method of <a href=\"https:\/\/docs.microsoft.com\/dotnet\/api\/microsoft.entityframeworkcore.design.idesigntimedbcontextfactory-1?view=efcore-3.1\">IDesignTimeDbContextFactory<\/a>. \nFor example, to indicate this is a dev build, a custom argument (e.g. <code>dev<\/code>) can passed on the command line:<\/p>\n<pre><code>dotnet ef migrations <span class=\"hljs-built_in\">add<\/span> <span class=\"hljs-literal\">two<\/span> <span class=\"hljs-comment\">--verbose --dev<\/span>\r\n<\/code><\/pre>\n<p>This argument will then flow into the factory, where it can be used to control how the context is created and initialized.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> MyDbContextFactory : IDesignTimeDbContextFactory&lt;SomeDbContext&gt;\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> SomeDbContext <span class=\"hljs-title\">CreateDbContext<\/span><span class=\"hljs-params\">(<span class=\"hljs-built_in\">string<\/span>[] args)<\/span> \r\n        <\/span>=&gt; <span class=\"hljs-keyword\">new<\/span> SomeDbContext(args.Contains(<span class=\"hljs-string\">\"--dev\"<\/span>));\r\n}\r\n<\/code><\/pre>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2419\">#2419<\/a>.<\/p>\n<h3 id=\"no-tracking-queries-with-identity-resolution\">No-tracking queries with identity resolution<\/h3>\n<p>No-tracking queries can now be configured to perform identity resolution.\nFor example, the following query will create a new Blog instance for each Post, even if each Blog has the same primary key. <\/p>\n<pre><code class=\"lang-CSharp\"><span class=\"hljs-selector-tag\">context<\/span><span class=\"hljs-selector-class\">.Posts<\/span><span class=\"hljs-selector-class\">.AsNoTracking<\/span>()<span class=\"hljs-selector-class\">.Include<\/span>(e =&gt; e.Blog)<span class=\"hljs-selector-class\">.ToList<\/span>();\r\n<\/code><\/pre>\n<p>However, at the expense of usually being slightly slower and always using more memory, this query can be changed to ensure only a single Blog instance is created:<\/p>\n<pre><code class=\"lang-CSharp\"><span class=\"hljs-selector-tag\">context<\/span><span class=\"hljs-selector-class\">.Posts<\/span><span class=\"hljs-selector-class\">.AsNoTracking<\/span>()<span class=\"hljs-selector-class\">.PerformIdentityResolution<\/span>()<span class=\"hljs-selector-class\">.Include<\/span>(e =&gt; e.Blog)<span class=\"hljs-selector-class\">.ToList<\/span>();\r\n<\/code><\/pre>\n<p>Note that this is only useful for no-tracking queries since all tracking queries already exhibit this behavior. \nAlso, following API review, the <code>PerformIdentityResolution<\/code> syntax will be changed.\nSee <a href=\"https:\/\/github.com\/dotnet\/efcore\/issues\/19877#issuecomment-637371073\">#19877<\/a>.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/1895\">#1895<\/a>.<\/p>\n<h3 id=\"stored-persisted-computed-columns\">Stored (persisted) computed columns<\/h3>\n<p>Most databases allow computed column values to be stored after computation.\nWhile this takes up disk space, the computed column is calculated only once on update, instead of each time its value is retrieved.\nThis also allows the column to be indexed for some databases.<\/p>\n<p>EF Core 5.0 allows computed columns to be configured as stored.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\">modelBuilder\r\n    .Entity&lt;User&gt;()\r\n    .Property(<span class=\"hljs-function\"><span class=\"hljs-params\">e<\/span> =&gt;<\/span> e.SomethingComputed)\r\n    .HasComputedColumnSql(<span class=\"hljs-string\">\"my sql\"<\/span>, <span class=\"hljs-attr\">stored<\/span>: <span class=\"hljs-literal\">true<\/span>);\r\n<\/code><\/pre>\n<h3 id=\"sqlite-computed-columns\">SQLite computed columns<\/h3>\n<p>EF Core now supports computed columns in SQLite databases.<\/p>\n<hr>\n<h2 id=\"daily-builds\">Daily builds<\/h2>\n<p>EF Core previews are aligned with .NET 5 previews. These previews tend to lag behind the latest work on EF Core. Consider using the <a href=\"https:\/\/github.com\/aspnet\/AspNetCore\/blob\/master\/docs\/DailyBuilds.md\">daily builds<\/a> instead to get the most up-to-date EF Core features and bug fixes.<\/p>\n<p>As with the previews, the daily builds do not require .NET 5; they can be used with GA\/RTM release of .NET Core 3.1.<\/p>\n<hr>\n<h2 id=\"documentation-and-feedback\">Documentation and feedback<\/h2>\n<p>EF Core docs has a new landing page! The main page for Entity Framework documentation has been overhauled to provide you with a hub experience. We hope this new format helps you find the documentation you need faster and with fewer clicks.<\/p>\n<p>The starting point for all EF Core documentation is <a href=\"https:\/\/docs.microsoft.com\/ef\/\">docs.microsoft.com\/ef\/<\/a>.<\/p>\n<p>Please file issues found and any other feedback on the <a href=\"https:\/\/github.com\/dotnet\/efcore\">dotnet\/efcore GitHub repo<\/a>.<\/p>\n<hr>\n<h2 id=\"helpful-short-links\">Helpful Short Links<\/h2>\n<p>The following short links are provided for easy reference and access.<\/p>\n<p>Main documentation:\n<a href=\"https:\/\/aka.ms\/efdocs\">https:\/\/aka.ms\/efdocs<\/a><\/p>\n<p>Issues and feature requests for EF Core:\n<a href=\"https:\/\/aka.ms\/efcorefeedback\">https:\/\/aka.ms\/efcorefeedback<\/a><\/p>\n<p>Entity Framework Roadmap:\n<a href=\"https:\/\/aka.ms\/efroadmap\">https:\/\/aka.ms\/efroadmap<\/a><\/p>\n<p>What&#39;s new in EF Core 5.x?\n<a href=\"https:\/\/aka.ms\/efcore5\">https:\/\/aka.ms\/efcore5<\/a><\/p>\n<hr>\n<h2 id=\"thank-you-from-the-team\">Thank you from the team<\/h2>\n<p>A big thank you from the EF team to everyone who has used EF over the years!<\/p>\n<table>\n<tr>\n<td><a href=\"https:\/\/github.com\/ajcvickers\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/efteam_ajcvickers.jpeg\" alt=\"ajcvickers\" width=200px><br>Arthur Vickers<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/AndriySvyryd\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/efteam_AndriySvyryd.jpeg\" alt=\"AndriySvyryd\" width=200px><br>Andriy Svyryd<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/bricelam\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/efteam_bricelam.jpeg\" alt=\"\" width=200px><br>Brice Lambson<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/JeremyLikness\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/efteam_JeremyLikness.jpeg\" alt=\"JeremyLikness\" width=200px><br>Jeremy Likness<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/lajones\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/efteam_lajones.jpeg\" alt=\"lajones\" width=200px><br>lajones<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/maumar\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/efteam_maumar.jpeg\" alt=\"maumar\" width=200px><br>Maurycy Markowski<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/roji\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/efteam_roji-1-300x300.png\" alt=\"roji\" width=200px><br>Shay Rojansky<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/smitpatel\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/efteam_smitpatel.png\" alt=\"smitpatel\" width=200px><br>Smit Patel<\/a>\n<\/td>\n<\/tr>\n<\/table>\n<hr>\n<h2 id=\"thank-you-to-our-contributors-\">Thank you to our contributors!<\/h2>\n<p>A big thank you to the following community members who have already contributed code or documentation to the EF Core 5 release! (List is in chronological order of first contribution to EF Core 5).<\/p>\n<table>\n<tr>\n<td><a href=\"https:\/\/github.com\/aevitas\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_aevitas.jpeg\" alt=\"aevitas\" width=200px><br>aevitas<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/alaatm\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_alaatm.png\" alt=\"alaatm\" width=200px><br>Alaa Masoud<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/aleksandar-manukov\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_aleksandar-manukov.png\" alt=\"aleksandar-manukov\" width=200px><br>Aleksandar Manukov<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/amrbadawy\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_amrbadawy.jpeg\" alt=\"amrbadawy\" width=200px><br>Amr Badawy<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/AnthonyMonterrosa\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_AnthonyMonterrosa.jpeg\" alt=\"AnthonyMonterrosa\" width=200px><br>Anthony Monterrosa<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/bbrandt\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_bbrandt.jpeg\" alt=\"bbrandt\" width=200px><br>Ben Brandt<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/benmccallum\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_benmccallum.jpeg\" alt=\"benmccallum\" width=200px><br>Ben McCallum<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/ccjx\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_ccjx.png\" alt=\"ccjx\" width=200px><br>Clarence Cai<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/CGijbels\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_CGijbels.jpeg\" alt=\"CGijbels\" width=200px><br>Christophe Gijbels<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/cincuranet\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_cincuranet.png\" alt=\"cincuranet\" width=200px><br>Jiri Cincura<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/Costo\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_Costo.jpeg\" alt=\"Costo\" width=200px><br>Vincent Costel<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/dshuvaev\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_dshuvaev.jpeg\" alt=\"dshuvaev\" width=200px><br>Dmitry Shuvaev<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/EricStG\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_EricStG.jpeg\" alt=\"EricStG\" width=200px><br>Eric St-Georges<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/ErikEJ\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_ErikEJ.jpeg\" alt=\"ErikEJ\" width=200px><br>Erik Ejlskov Jensen<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/gravbox\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_gravbox.png\" alt=\"gravbox\" width=200px><br>Christopher Davis<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/ivaylokenov\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_ivaylokenov.jpeg\" alt=\"ivaylokenov\" width=200px><br>Ivaylo Kenov<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/jfoshee\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_jfoshee.png\" alt=\"jfoshee\" width=200px><br>Jacob Foshee<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/jmzagorski\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_jmzagorski.png\" alt=\"jmzagorski\" width=200px><br>Jeremy Zagorski<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/jviau\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_jviau.jpeg\" alt=\"jviau\" width=200px><br>Jacob Viau<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/knom\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_knom.png\" alt=\"knom\" width=200px><br>Max K.<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/lohoris-crane\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_lohoris-crane.jpeg\" alt=\"lohoris-crane\" width=200px><br>lohoris-crane<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/loic-sharma\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_loic-sharma.jpeg\" alt=\"loic-sharma\" width=200px><br>Lo\u00efc Sharma<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/lokalmatador\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_lokalmatador.jpeg\" alt=\"lokalmatador\" width=200px><br>lokalmatador<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/mariusGundersen\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_mariusGundersen.png\" alt=\"mariusGundersen\" width=200px><br>Marius Gundersen<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/Marusyk\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_Marusyk.jpeg\" alt=\"Marusyk\" width=200px><br>Roman Marusyk<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/matthiaslischka\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_matthiaslischka.jpeg\" alt=\"matthiaslischka\" width=200px><br>Matthias Lischka<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/MaxG117\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_MaxG117.png\" alt=\"MaxG117\" width=200px><br>MaxG117<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/MHDuke\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_MHDuke.jpeg\" alt=\"MHDuke\" width=200px><br>MHDuke<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/mikes-gh\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_mikes-gh.png\" alt=\"mikes-gh\" width=200px><br>Mike Surcouf<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/Muppets\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_Muppets.jpeg\" alt=\"Muppets\" width=200px><br>Neil Bostrom<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/nmichels\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_nmichels.jpeg\" alt=\"nmichels\" width=200px><br>N\u00edcolas Michels<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/OOberoi\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_OOberoi.jpeg\" alt=\"OOberoi\" width=200px><br>Obi Oberoi<\/a><\/td>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/orionstudt\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_orionstudt.jpeg\" alt=\"orionstudt\" width=200px><br>Josh Studt<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/ozantopal\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_ozantopal.jpeg\" alt=\"ozantopal\" width=200px><br>Ozan Topal<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/pmiddleton\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_pmiddleton.jpeg\" alt=\"pmiddleton\" width=200px><br>Paul Middleton<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/prog-rajkamal\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_prog-rajkamal.jpeg\" alt=\"prog-rajkamal\" width=200px><br>Raj<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/ptjhuang\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_ptjhuang.png\" alt=\"ptjhuang\" width=200px><br>Peter Huang<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/ralmsdeveloper\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_ralmsdeveloper.png\" alt=\"ralmsdeveloper\" width=200px><br>Rafael Almeida Santos<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/redoz\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_redoz.png\" alt=\"redoz\" width=200px><br>Patrik Husfloen<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/rmarskell\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_rmarskell.jpeg\" alt=\"rmarskell\" width=200px><br>Richard Marskell<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/sguitardude\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_sguitardude.jpeg\" alt=\"sguitardude\" width=200px><br>sguitardude<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/SimpleSamples\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_SimpleSamples.png\" alt=\"SimpleSamples\" width=200px><br>Sam Hobbs<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/svengeance\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_svengeance.png\" alt=\"svengeance\" width=200px><br>Sven<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/VladDragnea\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_VladDragnea.jpeg\" alt=\"VladDragnea\" width=200px><br>Vlad<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vslee\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_vslee.png\" alt=\"vslee\" width=200px><br>vslee<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/WeihanLi\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_WeihanLi.jpeg\" alt=\"WeihanLi\" width=200px><br>liweihan<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/Youssef1313\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_Youssef1313.jpeg\" alt=\"Youssef1313\" width=200px><br>Youssef Victor<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/1iveowl\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/1iveowl.jpg\" alt=\"1iveowl\" width=200px><br>1iveowl<\/a>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/thomaslevesque\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_thomaslevesque.png\" alt=\"thomaslevesque\" width=200px><br>Thomas Levesque<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/akovac35\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_akovac35.png\" alt=\"akovac35\" width=200px><br>Aleksander Kova\u010d<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/leotsarev\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_leotsarev.jpg\" alt=\"leotsarev\" width=200px><br>Leonid Tsarev<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/kostat\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/03\/contributor_kostat.jpg\" alt=\"kostat\" width=200px><br>Konstantin Triger<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/sungam3r\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/contributor_sungam3r.png\" alt=\"sungam3r\" width=200px><br>Ivan Maximov<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/dzmitry-lahoda\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/contributor_dzmitry-lahoda.jpg\" alt=\"dzmitry-lahoda\" width=200px><br>Dzmitry Lahoda<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/Logerfo\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/contributor_logerfo.jpg\" alt=\"Logerfo\" width=200px><br>Bruno Logerfo<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/witheej\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_witheej.jpg\" alt=\"witheej\" width=200px><br>Josh Withee<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/FransBouma\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_FransBouma.png\" alt=\"FransBouma\" width=200px><br>Frans Bouma<\/td>\n<td><a href=\"https:\/\/github.com\/IGx89\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_IGx89.png\" alt=\"IGx89\" width=200px><br>Matthew Lieder<\/td>\n<td><a href=\"https:\/\/github.com\/paulomorgado\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_paulomorgado.jpg\" alt=\"paulomorgado\" width=200px><br>Paulo Morgado<\/td>\n<td><a href=\"https:\/\/github.com\/mderriey\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_mderriey.jpg\" alt=\"mderriey\" width=200px><br>Micka\u00ebl Derriey<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/LaurenceJKing\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_LaurenceJKing.jpg\" alt=\"LaurenceJKing\" width=200px><br>Laurence King<\/td>\n<td><a href=\"https:\/\/github.com\/oskarj\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_oskarj.png\" alt=\"oskarj\" width=200px><br>Oskar Josefsson<\/td>\n<td><a href=\"https:\/\/github.com\/bdebaere\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_bdebaere.jpg\" alt=\"bdebaere\" width=200px><br>bdebaere<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/BhargaviAnnadevara-MSFT\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_BhargaviAnnadevara-MSFT.jpg\" alt=\"BhargaviAnnadevara-MSFT\" width=200px><br>Bhargavi Annadevara<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/AlexanderTaeschner\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_AlexanderTaeschner.png\" alt=\"AlexanderTaeschner\" width=200px><br>Alexander T\u00e4schner<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/Jesse-Hufstetler\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_Jesse-Hufstetler.png\" alt=\"Jesse-Hufstetler\" width=200px><br>Jesse Hufstetler<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/ivarlovlie\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/contributor_ivarlovlie.png\" alt=\"ivarlovlie\" width=200px><br>Ivar L\u00f8vlie<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/cucoreanu\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/contributor_cucoreanu.jpg\" alt=\"cucoreanu\" width=200px><br>cucoreanu<\/a><\/td>\n<\/tr>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Announcing the release of Entity Framework Core 5.0 Preview 5 featuring database collations, flowing arguments to IDesignTimeDbContextFactory, no tracking queries with identity resolution, stored (persisted) columns and SQLite computed columns.<\/p>\n","protected":false},"author":368,"featured_media":28623,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[196,859],"tags":[9,30,70,71],"class_list":["post-28617","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet-core","category-entity-framework","tag-net-core","tag-announcement","tag-entity-framework","tag-entity-framework-core"],"acf":[],"blog_post_summary":"<p>Announcing the release of Entity Framework Core 5.0 Preview 5 featuring database collations, flowing arguments to IDesignTimeDbContextFactory, no tracking queries with identity resolution, stored (persisted) columns and SQLite computed columns.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/28617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/368"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=28617"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/28617\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/28623"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=28617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=28617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=28617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}