{"id":27404,"date":"2020-04-02T10:02:30","date_gmt":"2020-04-02T17:02:30","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=27404"},"modified":"2020-04-02T10:02:30","modified_gmt":"2020-04-02T17:02:30","slug":"announcing-entity-framework-core-5-0-preview-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-entity-framework-core-5-0-preview-2\/","title":{"rendered":"Announcing Entity Framework Core 5.0 Preview 2"},"content":{"rendered":"<h2>Announcing Entity Framework Core 5.0 Preview 2<\/h2>\n<p>Today we are excited to announce the second preview release of <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore\/5.0.0-preview.2.20159.4\">EF Core 5.0<\/a>.<\/p>\n<p>The second previews of <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-net-5-0-preview-2\/\">.NET 5<\/a> and <a href=\"https:\/\/devblogs.microsoft.com\/aspnet\/asp-net-core-updates-in-net-5-preview-2\/\">ASP.NET Core 5.0<\/a> are also available now.<\/p>\n<h2>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>How to get EF Core 5.0 previews<\/h2>\n<p>EF Core is distributed exclusively as a set of NuGet packages. For 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.2.20159.4\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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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.2.20159.4\">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 2 release of the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Data.Sqlite.Core\/5.0.0-preview.2.20159.4\">Microsoft.Data.Sqlite.Core<\/a> ADO.NET provider.<\/p>\n<h2>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\n<\/pre>\n<p>Then install with:<\/p>\n<pre class=\"prettyprint\">dotnet tool install --global dotnet-ef --version 5.0.0-preview.2.20159.4\n<\/pre>\n<p><figure id=\"attachment_27406\" aria-labelledby=\"figcaption_attachment_27406\" class=\"wp-caption alignnone\" ><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview2-1024x285.jpg\" alt=\"Image ef5preview2\" width=\"640\" height=\"178\" class=\"size-large wp-image-27406\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview2-1024x285.jpg 1024w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview2-300x84.jpg 300w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview2-768x214.jpg 768w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview2-1536x428.jpg 1536w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/04\/ef5preview2-scaled.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><figcaption id=\"figcaption_attachment_27406\" class=\"wp-caption-text\">EF 5 Preview 2<\/figcaption><\/figure><\/p>\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<hr \/>\n<h2>What&#8217;s new in EF Core 5 Preview 2<\/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 2 are called out below.<\/p>\n<h3>Use a C# attribute to specify a property backing field<\/h3>\n<p>A C# attribute can now be used to specify the backing field for a property. This allows EF Core to still write to and read from the backing field as would normally happen, even when the backing field cannot be found automatically. For example:<\/p>\n<pre><code class=\"CSharp\">public class Blog\n{\n    private string _mainTitle;\n\n    public int Id { get; set; }\n\n    [BackingField(nameof(_mainTitle))]\n    public string Title\n    {\n        get =&gt; _mainTitle;\n        set =&gt; _mainTitle = value;\n    }\n}\n<\/code><\/pre>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2230\">#2230<\/a>.<\/p>\n<h3>Complete discriminator mapping<\/h3>\n<p>EF Core uses a discriminator column for <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/modeling\/inheritance\">TPH mapping of an inheritance hierarchy<\/a>. Some performance enhancements are possible so long as EF Core knows all possible values for the discriminator. EF Core 5.0 now implements these enhancements.<\/p>\n<p>For example, previous versions of EF Core would always generate this SQL for a query returning all types in a hierarchy:<\/p>\n<pre><code class=\"sql\">SELECT [a].[Id], [a].[Discriminator], [a].[Name]\nFROM [Animal] AS [a]\nWHERE [a].[Discriminator] IN (N'Animal', N'Cat', N'Dog', N'Human')\n<\/code><\/pre>\n<p>EF Core 5.0 will now generate the following when a complete discriminator mapping is configured:<\/p>\n<pre><code class=\"sql\">SELECT [a].[Id], [a].[Discriminator], [a].[Name]\nFROM [Animal] AS [a]\n<\/code><\/pre>\n<p>This will be the default behavior starting with preview 3.<\/p>\n<h3>Performance improvements in Microsoft.Data.Sqlite<\/h3>\n<p>We have made two performance improvements for SQLIte:<\/p>\n<ul>\n<li>Retrieving binary and string data with <code>GetBytes<\/code>, <code>GetChars<\/code>, and <code>GetTextReader<\/code> is now more efficient by making use of <code>SqliteBlob<\/code> and streams. <\/li>\n<li>Initialization of <code>SqliteConnection<\/code> is now lazy.<\/li>\n<\/ul>\n<p>These improvements are in the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Data.Sqlite.Core\/5.0.0-preview.2.20159.4\">ADO.NET Microsoft.Data.Sqlite<\/a> provider and hence also improve performance outside of EF Core.<\/p>\n<hr \/>\n<h2>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>Documentation and feedback<\/h2>\n<p>The starting point for all EF Core documentation is <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/\">docs.microsoft.com\/ef\/core\/<\/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>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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>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!<\/p>\n<table>\n<tr>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<\/tr>\n<tr>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<td>\n      <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>\n    <\/td>\n<\/tr>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Today we are excited to announce the second preview release of EF Core 5.0. Improvements include support for C# attributes to specify a backing field, complete discriminator mapping, and performance improvements with SQLite.<\/p>\n","protected":false},"author":368,"featured_media":27406,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,196,756,859],"tags":[4,9,30,70,71],"class_list":["post-27404","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-dotnet-core","category-csharp","category-entity-framework","tag-net","tag-net-core","tag-announcement","tag-entity-framework","tag-entity-framework-core"],"acf":[],"blog_post_summary":"<p>Today we are excited to announce the second preview release of EF Core 5.0. Improvements include support for C# attributes to specify a backing field, complete discriminator mapping, and performance improvements with SQLite.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/27404","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=27404"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/27404\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/27406"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=27404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=27404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=27404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}