{"id":27685,"date":"2020-04-23T10:17:03","date_gmt":"2020-04-23T17:17:03","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=27685"},"modified":"2020-04-23T11:53:41","modified_gmt":"2020-04-23T18:53:41","slug":"announcing-entity-framework-core-5-0-preview-3","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-entity-framework-core-5-0-preview-3\/","title":{"rendered":"Announcing Entity Framework Core 5.0 Preview 3"},"content":{"rendered":"<p>Today we are excited to announce the third preview release of <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore\/5.0.0-preview.3.20181.2\">EF Core 5.0<\/a>.<\/p>\n<p>The third previews of <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-net-5-0-preview-3\/\">.NET 5<\/a> and <a href=\"https:\/\/devblogs.microsoft.com\/aspnet\/asp-net-core-updates-in-net-5-preview-3\/\">ASP.NET Core 5.0<\/a> 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 class=\"prettyprint\">dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 5.0.0-preview.3.20181.2\r\n<\/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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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.3.20181.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 3 release of the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Data.Sqlite.Core\/5.0.0-preview.3.20181.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&#8217;ll have to install this package as either a global or local tool.<\/p>\n<p>To install the preview tool globally, first uninstall any existing version with:<\/p>\n<pre class=\"prettyprint\">dotnet tool uninstall --global dotnet-ef\r\n<\/pre>\n<p>Then install with:<\/p>\n<pre class=\"prettyprint\">dotnet tool install --global dotnet-ef --version 5.0.0-preview.3.20181.2\r\n<\/pre>\n<p>It&#8217;s possible to use this new version of dotnet ef with projects that use older versions of the EF Core runtime.<\/p>\n<p><figure class=\"wp-caption alignnone\" ><img decoding=\"async\" class=\"size-large wp-image-27689\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview3-1024x353.jpg\" alt=\"Entity Framework Core 5.0 Preview 3\" width=\"640\" height=\"221\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview3-1024x353.jpg 1024w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview3-300x103.jpg 300w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview3-768x265.jpg 768w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview3-1536x529.jpg 1536w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview3-scaled.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><figcaption class=\"wp-caption-text\">Entity Framework Core 5.0 Preview 3 CLI<\/figcaption><\/figure><\/p>\n<hr \/>\n<h2 id=\"what-s-new-in-ef-core-5-preview-3\">What&#8217;s new in EF Core 5 Preview 3<\/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 3 are called out below.<\/p>\n<h3 id=\"filtered-include\">Filtered Include<\/h3>\n<p>The Include method now supports filtering of the entities included.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\"><span class=\"hljs-keyword\">var<\/span> blogs = context.Blogs\r\n    .Include(<span class=\"hljs-function\"><span class=\"hljs-params\">e<\/span> =&gt;<\/span> e.Posts.Where(<span class=\"hljs-function\"><span class=\"hljs-params\">p<\/span> =&gt;<\/span> p.Title.Contains(<span class=\"hljs-string\">\"Cheese\"<\/span>)))\r\n    .ToList();\r\n<\/code><\/pre>\n<p>This query will return blogs together with each associated post, but only when the post title contains &#8220;Cheese&#8221;.<\/p>\n<p>Skip and Take can also be used to reduce the number of included entities.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\">var <span class=\"hljs-keyword\">blogs <\/span>= <span class=\"hljs-built_in\">context<\/span>.<span class=\"hljs-keyword\">Blogs\r\n<\/span>    <span class=\"hljs-meta\">.Include<\/span>(e =&gt; e.Posts.<span class=\"hljs-keyword\">OrderByDescending(post <\/span>=&gt; post.Title).Take(<span class=\"hljs-number\">5<\/span>)))\r\n    .ToList()<span class=\"hljs-comment\">;<\/span>\r\n<\/code><\/pre>\n<p>This query will return blogs with at most five posts included on each blog.<\/p>\n<p>See the <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/querying\/related-data#filtered-include\">Include documentation<\/a> for full details.<\/p>\n<h3 id=\"new-modelbuilder-api-for-navigation-properties\">New ModelBuilder API for navigation properties<\/h3>\n<p>Navigation properties are primarily configured when <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/modeling\/relationships\">defining relationships<\/a>.\nHowever, the new <code>Navigation<\/code> method can be used in the cases where navigation properties need additional configuration.\nFor example, to set a backing field for the navigation when the field would not be found by convention:<\/p>\n<pre><code class=\"lang-CSharp\">modelBuilder.Entity&lt;Blog&gt;().Navigation(<span class=\"hljs-function\"><span class=\"hljs-params\">e<\/span> =&gt;<\/span> e.Posts).HasField(<span class=\"hljs-string\">\"_myposts\"<\/span>);\r\n<\/code><\/pre>\n<p>Note that the <code>Navigation<\/code> API does not replace relationship configuration.\nInstead it allows additional configuration of navigation properties in already discovered or defined relationships.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2302\">#2302<\/a>.<\/p>\n<h3 id=\"new-command-line-parameters-for-namespaces-and-connection-strings\">New command-line parameters for namespaces and connection strings<\/h3>\n<p>Migrations and scaffolding now allow namespaces to be specified on the command line.\nFor example, to reverse engineer a database putting the context and model classes in different namespaces:<\/p>\n<pre><code>dotnet ef dbcontext scaffold <span class=\"hljs-string\">\"connection string\"<\/span> Microsoft<span class=\"hljs-selector-class\">.EntityFrameworkCore<\/span><span class=\"hljs-selector-class\">.SqlServer<\/span> --context-namespace <span class=\"hljs-string\">\"My.Context\"<\/span> --namespace <span class=\"hljs-string\">\"My.Model\"<\/span>\r\n<\/code><\/pre>\n<p>Also, a connection string can now be passed to the <code>database-update<\/code> command:<\/p>\n<pre><code><span class=\"hljs-string\">dotnet <\/span><span class=\"hljs-string\">ef <\/span><span class=\"hljs-string\">database <\/span><span class=\"hljs-string\">update <\/span><span class=\"hljs-built_in\">--connection<\/span> <span class=\"hljs-string\">\"connection string\"<\/span>\r\n<\/code><\/pre>\n<p>Equivalent parameters have also been added to the PowerShell commands used in the VS Package Manager Console.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2303\">#2303<\/a>.<\/p>\n<h3 id=\"enabledetailederrors-has-returned\">EnableDetailedErrors has returned<\/h3>\n<p>For performance reasons, EF doesn&#8217;t do additional null-checks when reading values from the database.\nThis can result in exceptions that are hard to root-cause when an unexpected null is encountered.<\/p>\n<p>Using <code>EnableDetailedErrors<\/code> will add extra null checking to queries such that, for a small performance overhead, these errors are easier to trace back to a root cause.<\/p>\n<p>For example:<\/p>\n<pre><code class=\"lang-CSharp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">protected<\/span> <span class=\"hljs-keyword\">override<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">OnConfiguring<\/span>(<span class=\"hljs-params\">DbContextOptionsBuilder optionsBuilder<\/span>)\r\n    <\/span>=&gt; optionsBuilder\r\n        .EnableDetailedErrors()\r\n        .EnableSensitiveDataLogging() <span class=\"hljs-comment\">\/\/ Often also useful with EnableDetailedErrors <\/span>\r\n        .UseSqlServer(Your.SqlServerConnectionString);\r\n<\/code><\/pre>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/955\">#955<\/a>.<\/p>\n<h3 id=\"cosmos-partition-keys\">Cosmos partition keys<\/h3>\n<p>The partition key to use for a given query can now be specified in the query.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\"><span class=\"hljs-selector-tag\">await<\/span> <span class=\"hljs-selector-tag\">context<\/span><span class=\"hljs-selector-class\">.Set<\/span>&lt;<span class=\"hljs-selector-tag\">Customer<\/span>&gt;()\r\n             <span class=\"hljs-selector-class\">.WithPartitionKey<\/span>(<span class=\"hljs-selector-tag\">myPartitionKey<\/span>)\r\n             <span class=\"hljs-selector-class\">.FirstAsync<\/span>();\r\n<\/code><\/pre>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2199\">#2199<\/a>.<\/p>\n<h3 id=\"support-for-the-sql-server-datalength-function\">Support for the SQL Server DATALENGTH function<\/h3>\n<p>This can be accessed using the new <code>EF.Functions.DataLength<\/code> method.\nFor example:<\/p>\n<pre><code class=\"lang-CSharp\"><span class=\"hljs-keyword\">var<\/span> <span class=\"hljs-built_in\">count<\/span> = context.<span class=\"hljs-type\">Orders<\/span>.<span class=\"hljs-type\">Count<\/span>(<span class=\"hljs-built_in\">c<\/span> =&gt; <span class=\"hljs-number\">100<\/span> &lt; <span class=\"hljs-type\">EF<\/span>.<span class=\"hljs-type\">Functions<\/span>.<span class=\"hljs-type\">DataLength<\/span>(<span class=\"hljs-built_in\">c<\/span>.<span class=\"hljs-type\">OrderDate<\/span>));\r\n<\/code><\/pre>\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&#8217;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<tbody>\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\" \/>\nArthur 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\" \/>\nAndriy 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\" \/>\nBrice 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\" \/>\nJeremy Likness<\/a><\/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\" \/>\nlajones<\/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\" \/>\nMaurycy 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\" \/>\nShay 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\" \/>\nSmit Patel<\/a><\/td>\n<\/tr>\n<\/tbody>\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<tbody>\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\" \/>\naevitas<\/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\" \/>\nAlaa 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\" \/>\nAleksandar 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\" \/>\nAmr Badawy<\/a><\/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\" \/>\nAnthony 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\" \/>\nBen 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\" \/>\nBen 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\" \/>\nClarence Cai<\/a><\/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\" \/>\nChristophe 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\" \/>\nJiri 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\" \/>\nVincent 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\" \/>\nDmitry Shuvaev<\/a><\/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\" \/>\nEric 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\" \/>\nErik 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\" \/>\nChristopher 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\" \/>\nIvaylo Kenov<\/a><\/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\" \/>\nJacob 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\" \/>\nJeremy 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\" \/>\nJacob 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\" \/>\nMax K.<\/a><\/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\" \/>\nlohoris-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\" \/>\nLo\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\" \/>\nlokalmatador<\/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\" \/>\nMarius Gundersen<\/a><\/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\" \/>\nRoman 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\" \/>\nMatthias 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\" \/>\nMaxG117<\/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\" \/>\nMHDuke<\/a><\/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\" \/>\nMike 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\" \/>\nNeil 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\" \/>\nN\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\" \/>\nObi Oberoi<\/a><\/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\" \/>\nJosh 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\" \/>\nOzan 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\" \/>\nPaul 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\" \/>\nRaj<\/a><\/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\" \/>\nPeter 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\" \/>\nRafael 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\" \/>\nPatrik 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\" \/>\nRichard Marskell<\/a><\/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\" \/>\nsguitardude<\/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\" \/>\nSam 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\" \/>\nSven<\/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\" \/>\nVlad<\/a><\/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\" \/>\nvslee<\/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\" \/>\nliweihan<\/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\" \/>\nYoussef 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\" \/>\n1iveowl<\/a><\/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\" \/>\nThomas 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\" \/>\nAleksander 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\" \/>\nLeonid 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\" \/>\nKonstantin 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\" \/>\nIvan 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\" \/>\nDzmitry 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\" \/>\nBruno Logerfo<\/a><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Today we are excited to announce the third preview release of EF Core 5.0. The third previews of .NET 5 and ASP.NET Core 5.0 are also available now. Prerequisites The previews of EF Core 5.0 require .NET Standard 2.1. This means: EF Core 5.0 runs on .NET Core 3.1; it does not require .NET 5. [&hellip;]<\/p>\n","protected":false},"author":368,"featured_media":27689,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,196,756,859],"tags":[9,70,71],"class_list":["post-27685","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-dotnet-core","category-csharp","category-entity-framework","tag-net-core","tag-entity-framework","tag-entity-framework-core"],"acf":[],"blog_post_summary":"<p>Today we are excited to announce the third preview release of EF Core 5.0. The third previews of .NET 5 and ASP.NET Core 5.0 are also available now. Prerequisites The previews of EF Core 5.0 require .NET Standard 2.1. This means: EF Core 5.0 runs on .NET Core 3.1; it does not require .NET 5. [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/27685","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=27685"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/27685\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/27689"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=27685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=27685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=27685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}