{"id":28986,"date":"2020-07-21T09:54:05","date_gmt":"2020-07-21T16:54:05","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=28986"},"modified":"2021-09-29T12:15:54","modified_gmt":"2021-09-29T19:15:54","slug":"announcing-entity-framework-core-ef-core-5-0-preview-7","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-entity-framework-core-ef-core-5-0-preview-7\/","title":{"rendered":"Announcing Entity Framework Core EF Core 5.0 Preview 7"},"content":{"rendered":"<p>Today, the Entity Framework Core team announces the seventh preview release of <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore\/5.0.0-preview.7.20365.15\">EF Core 5.0<\/a>. \nThis release includes a factory to create <code>DbContext<\/code> instances, the ability to reset <code>DbContext<\/code> state, Cosmos DB improvements including enhanced support for configuration options and partition keys, and much more. <\/p>\n<h2>In this post<\/h2>\n<ul>\n<li><a href=\"#what-s-new-in-ef-core-5-preview-7\">What&#8217;s New in EF Core 5 Preview 7<\/a>\n<li><a href=\"#prerequisites\">Prerequisites<\/a>\n<li><a href=\"#how-to-get-ef-core-5-0-previews\">How to get EF Core 5.0 previews<\/a>\n<li><a href=\"#installing-the-ef-core-command-line-interface-cli-\">Installing the EF Core Command Line Interface (CLI)<\/a>\n<li><a href=\"#daily-builds\">Daily builds<\/a>\n<li><a href=\"#contribute-to-net-5\">Contribute to .NET 5<\/a>\n<li><a href=\"#the-ef-core-community-standup\">The EF Core Community Standup<\/a>\n<li><a href=\"#documentation-and-feedback\">Documentation and Feedback<\/a>\n<li><a href=\"#helpful-short-links\">Helpful Short Links<\/a>\n<li><a href=\"#thank-you-from-the-team\">Thank you from the team<\/a>\n<li><a href=\"#thank-you-to-our-contributors-\">Thank you to our contributors!<\/a>\n<\/ul>\n<p>We especially would like to share our deepest appreciation for the <a href=\"#thank-you-to-our-contributors-\">many contributors<\/a> who help make this project better every day. Thank you!<\/p>\n<hr>\n<h2 id=\"what-s-new-in-ef-core-5-preview-7\">What&#39;s New in EF Core 5 Preview 7<\/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 7 are called out below. This preview also includes several bug fixes.<\/p>\n<h3 id=\"dbcontextfactory\">DbContextFactory<\/h3>\n<p>EF Core 5.0 introduces <code>AddDbContextFactory<\/code> and <code>AddPooledDbContextFactory<\/code> to register a factory for creating DbContext instances in the application&#39;s dependency injection (D.I.) container. For example:<\/p>\n<pre><code class=\"lang-csharp\">services.AddDbContextFactory&lt;SomeDbContext&gt;(<span class=\"hljs-function\"><span class=\"hljs-params\">b<\/span> =&gt;<\/span>\r\n    b.UseSqlServer(@<span class=\"hljs-string\">\"Server=(localdb)\\mssqllocaldb;Database=Test\"<\/span>));\r\n<\/code><\/pre>\n<p>Application services such as ASP.NET Core controllers can then depend on <code>IDbContextFactory&lt;TContext&gt;<\/code> in the service constructor. For example:<\/p>\n<pre><code class=\"lang-csharp\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">MyController<\/span>\r\n{\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">readonly<\/span> IDbContextFactory&lt;SomeDbContext&gt; _contextFactory;\r\n\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title\">MyController<\/span>(<span class=\"hljs-params\">IDbContextFactory&lt;SomeDbContext&gt; contextFactory<\/span>)\r\n    <\/span>{\r\n        _contextFactory = contextFactory;\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>DbContext instances can then be created and used as needed. For example:<\/p>\n<pre><code class=\"lang-csharp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">DoSomehing<\/span>(<span class=\"hljs-params\"><\/span>)\r\n<\/span>{\r\n    <span class=\"hljs-keyword\">using<\/span> (<span class=\"hljs-keyword\">var<\/span> context = _contextFactory.CreateDbContext())\r\n    {\r\n        <span class=\"hljs-comment\">\/\/ ...            <\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Note that the DbContext instances created in this way are <em>not<\/em> managed by the application&#39;s service provider and therefore must be disposed by the application. This decoupling is very useful for Blazor applications, where using <code>IDbContextFactory<\/code> is recommended, but may also be useful in other scenarios.<\/p>\n<p>DbContext instances can be pooled by calling <code>AddPooledDbContextFactory<\/code>. This pooling works the same way as for <code>AddDbContextPool<\/code>, and also has the same limitations.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2523\">#2523<\/a>.<\/p>\n<h3 id=\"reset-dbcontext-state\">Reset DbContext state<\/h3>\n<p>EF Core 5.0 introduces <code>ChangeTracker.Clear()<\/code> which clears the DbContext of all tracked entities. This should usually not be needed when using the best practice of creating a new, short-lived context instance for each unit-of-work. However, if there is a need to reset the state of a DbContext instance, then using the new <code>Clear()<\/code> method is more performant and robust than mass-detaching all entities.  <\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2524\">#2524<\/a>.<\/p>\n<h3 id=\"new-pattern-for-store-generated-defaults\">New pattern for store-generated defaults<\/h3>\n<p>EF Core allows an explicit value to be set for a column that may also have default value constraint. EF Core uses the CLR default of type property type as a sentinel for this; if the value is not the CLR default, then it is inserted, otherwise the database default is used.<\/p>\n<p>This creates problems for types where the CLR default is not a good sentinel&#8211;most notably, <code>bool<\/code> properties. EF Core 5.0 now allows the backing field to be nullable for cases like this. For example:<\/p>\n<pre><code class=\"lang-csharp\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Blog<\/span>\r\n{\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">bool<\/span>? _isValid;\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">bool<\/span> IsValid\r\n    {\r\n        <span class=\"hljs-keyword\">get<\/span> =&gt; _isValid ?? <span class=\"hljs-literal\">false<\/span>;\r\n        <span class=\"hljs-keyword\">set<\/span> =&gt; _isValid = <span class=\"hljs-keyword\">value<\/span>;\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Note that the backing field is nullable, but the publicly exposed property is not. This allows the sentinel value to be <code>null<\/code> without impacting the public surface of the entity type. In this case, if the <code>IsValid<\/code> is never set, then the database default will be used since the backing field remains null. If either <code>true<\/code> or <code>false<\/code> are set, then this value is saved explicitly to the database.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2525\">#2525<\/a>.<\/p>\n<h3 id=\"savepoints\">Savepoints<\/h3>\n<p>EF Core now supports <a href=\"https:\/\/en.wikipedia.org\/wiki\/Savepoint\">savepoints<\/a> for greater control over transactions that execute multiple operations.<\/p>\n<p>Savepoints can be manually created, released, and rolled back. For example:<\/p>\n<pre><code class=\"lang-csharp\"><span class=\"hljs-built_in\">context<\/span>.Database.CreateSavepoint(<span class=\"hljs-string\">\"MySavePoint\"<\/span>)<span class=\"hljs-comment\">;<\/span>\r\n<\/code><\/pre>\n<p>In addition, EF Core will now roll back to the last savepoint when executing <code>SaveChanges<\/code> fails. This allows SaveChanges to be re-tried without re-trying the entire transaction.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2429\">#2429<\/a>.<\/p>\n<h3 id=\"cosmos-partition-keys\">Cosmos partition keys<\/h3>\n<p>EF Core allows the Cosmos partition key is included in the EF model. For example:<\/p>\n<pre><code class=\"lang-csharp\">modelBuilder.Entity&lt;Customer&gt;().HasPartitionKey(<span class=\"hljs-selector-tag\">b<\/span> =&gt; <span class=\"hljs-selector-tag\">b<\/span>.AlternateKey)\r\n<\/code><\/pre>\n<p>Starting with preview 7, the partition key is included in the entity type&#39;s PK and is used to improved performance in some queries.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2471\">#2471<\/a>.<\/p>\n<h3 id=\"cosmos-configuration\">Cosmos configuration<\/h3>\n<p>EF Core 5.0 improves configuration of Cosmos and Cosmos connections.<\/p>\n<p>Previously, EF Core required the end-point and key to be specified explicitly when connecting to a Cosmos database. EF Core 5.0 allows use of a connection string instead. In addition, EF Core 5.0 allows the WebProxy instance to be explicitly set. 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        .UseCosmos(<span class=\"hljs-string\">\"my-cosmos-connection-string\"<\/span>, <span class=\"hljs-string\">\"MyDb\"<\/span>,\r\n            cosmosOptionsBuilder =&gt;\r\n            {\r\n                cosmosOptionsBuilder.WebProxy(myProxyInstance);\r\n            });\r\n<\/code><\/pre>\n<p>Many other timeout values, limits, etc. can now also be configured. For example:<\/p>\n<pre><code class=\"lang-csharp\">protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\r\n    =&gt; optionsBuilder\r\n        .UseCosmos(<span class=\"hljs-string\">\"my-cosmos-connection-string\"<\/span>, <span class=\"hljs-string\">\"MyDb\"<\/span>,\r\n            cosmosOptionsBuilder =&gt;\r\n            {\r\n                cosmosOptionsBuilder.LimitToEndpoint()<span class=\"hljs-comment\">;<\/span>\r\n                cosmosOptionsBuilder.RequestTimeout(requestTimeout)<span class=\"hljs-comment\">;<\/span>\r\n                cosmosOptionsBuilder.OpenTcpConnectionTimeout(timeout)<span class=\"hljs-comment\">;<\/span>\r\n                cosmosOptionsBuilder.IdleTcpConnectionTimeout(timeout)<span class=\"hljs-comment\">;<\/span>\r\n                cosmosOptionsBuilder.GatewayModeMaxConnectionLimit(connectionLimit)<span class=\"hljs-comment\">;<\/span>\r\n                cosmosOptionsBuilder.MaxTcpConnectionsPerEndpoint(connectionLimit)<span class=\"hljs-comment\">;<\/span>\r\n                cosmosOptionsBuilder.MaxRequestsPerTcpConnection(requestLimit)<span class=\"hljs-comment\">;<\/span>\r\n            })<span class=\"hljs-comment\">;<\/span>\r\n<\/code><\/pre>\n<p>Finally, the default connection mode is now <code>ConnectionMode.Gateway<\/code>, which is generally more compatible.<\/p>\n<p>Documentation is tracked by issue <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/issues\/2471\">#2471<\/a>.<\/p>\n<h3 id=\"scaffold-dbcontext-now-singularizes\">Scaffold-DbContext now singularizes<\/h3>\n<p>Previously when scaffolding a DbContext from an existing database, EF Core will create entity type names that match the table names in the database. For example, tables <code>People<\/code> and <code>Addresses<\/code> resulted in entity types named <code>People<\/code> and <code>Addresses<\/code>.<\/p>\n<p>In previous releases, this behavior was configurable through registration of a pluralization service. Now in EF Core 5.0, the <a href=\"https:\/\/www.nuget.org\/packages\/Humanizer.Core\/\">Humanizer<\/a> package is used as a default pluralization service. This means tables <code>People<\/code> and <code>Addresses<\/code> will now be reverse engineered to entity types named <code>Person<\/code> and <code>Address<\/code>.<\/p>\n<hr>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p><strong>EF Core 5.0 will <em>not<\/em> run on .NET Standard 2.0 platforms, including .NET Framework.<\/strong><\/p>\n<ul>\n<li>The previews of EF Core 5.0 require <a href=\"https:\/\/github.com\/dotnet\/standard\/blob\/master\/docs\/versions\/netstandard2.1.md\">.NET Standard 2.1<\/a>.<\/li>\n<li>This means that EF Core 5.0 will run on .NET Core 3.1 and does <em>not<\/em> require .NET 5. <\/li>\n<\/ul>\n<blockquote>\n<p>To summarize: EF Core 5.0 runs on <a href=\"https:\/\/docs.microsoft.com\/dotnet\/standard\/net-standard#net-implementation-support\">platforms that support .NET Standard 2.1<\/a>.<\/p>\n<\/blockquote>\n<p><strong>The plan is to maintain .NET Standard 2.1 compatibility through the final release.<\/strong> <\/p>\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-bash\"><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<\/span><span class=\"hljs-selector-class\">.7<\/span><span class=\"hljs-selector-class\">.20365<\/span><span class=\"hljs-selector-class\">.15<\/span>\r\n<\/code><\/pre>\n<p>This following table links to the preview 7 versions of the EF Core packages and describes what they are used for.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:right\"><strong>Package<\/strong><\/th>\n<th style=\"text-align:left\"><strong>Purpose<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore<\/a><\/td>\n<td style=\"text-align:left\">The main EF Core package that is independent of specific database providers<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.SqlServer\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.SqlServer<\/a><\/td>\n<td style=\"text-align:left\">Database provider for Microsoft SQL Server and SQL Azure<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite<\/a><\/td>\n<td style=\"text-align:left\">SQL Server support for spatial types<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Sqlite\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Sqlite<\/a><\/td>\n<td style=\"text-align:left\">Database provider for SQLite that includes the native binary for the database engine<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Sqlite.Core\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Sqlite.Core<\/a><\/td>\n<td style=\"text-align:left\">Database provider for SQLite <em>without<\/em> a packaged native binary<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite<\/a><\/td>\n<td style=\"text-align:left\">SQLite support for spatial types<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Cosmos\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Cosmos<\/a><\/td>\n<td style=\"text-align:left\">Database provider for Azure Cosmos DB<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.InMemory\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.InMemory<\/a><\/td>\n<td style=\"text-align:left\">The in-memory database provider<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Tools\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Tools<\/a><\/td>\n<td style=\"text-align:left\">EF Core PowerShell commands for the Visual Studio Package Manager Console; use this to integrate tools like <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/managing-schemas\/scaffolding\">scaffolding<\/a> and <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/managing-schemas\/migrations\/\">migrations<\/a> with Visual Studio<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Design\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Design<\/a><\/td>\n<td style=\"text-align:left\">Shared design-time components for EF Core tools<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Proxies\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Proxies<\/a><\/td>\n<td style=\"text-align:left\">Lazy-loading and change-tracking proxies<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Abstractions\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Abstractions<\/a><\/td>\n<td style=\"text-align:left\">Decoupled EF Core abstractions; use this for features like extended data annotations defined by EF Core<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Relational\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Relational<\/a><\/td>\n<td style=\"text-align:left\">Shared EF Core components for relational database providers<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:right\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.Analyzers\/5.0.0-preview.7.20365.15\">Microsoft.EntityFrameworkCore.Analyzers<\/a><\/td>\n<td style=\"text-align:left\">C# analyzers for EF Core<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>We also published the 5.0 preview 7 release of the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Data.Sqlite.Core\/5.0.0-preview.7.20365.15\">Microsoft.Data.Sqlite.Core<\/a> provider for <a href=\"https:\/\/docs.microsoft.com\/dotnet\/framework\/data\/adonet\/ado-net-overview\">ADO.NET<\/a>.<\/p>\n<h2 id=\"installing-the-ef-core-command-line-interface-cli-\">Installing the EF Core Command Line Interface (CLI)<\/h2>\n<p>As with EF Core 3.0 and 3.1, the EF Core CLI is no longer included in the .NET Core SDK. Before you can execute EF Core migration or scaffolding commands, \nyou&#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\/07\/efcoretools.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-bash\">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-bash\"><span class=\"hljs-selector-tag\">dotnet<\/span> <span class=\"hljs-selector-tag\">tool<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">--global<\/span> <span class=\"hljs-selector-tag\">dotnet-ef<\/span> <span class=\"hljs-selector-tag\">--version<\/span> 5<span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0-preview<\/span><span class=\"hljs-selector-class\">.7<\/span><span class=\"hljs-selector-class\">.20365<\/span><span class=\"hljs-selector-class\">.15<\/span>\r\n<\/code><\/pre>\n<p>It&#39;s possible to use this new version of the EF Core CLI with projects that use older versions of the EF Core runtime.<\/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=\"contribute-to-net-5\">Contribute to .NET 5<\/h2>\n<p>The .NET documentation team is <a href=\"https:\/\/github.com\/dotnet\/docs\/issues\/18923\">reorganizing .NET content<\/a> to better match the workloads you build with .NET. This includes a new <a href=\"https:\/\/github.com\/dotnet\/docs\/issues\/19029\">.NET Data landing page<\/a> that will link out to data-related topics ranging from EF Core to APIs, Big Data, and Machine learning. The planning and execution will be done completely in the open on GitHub. This is your opportunity to help shape the hierarchy and content to best fit your needs as a .NET developer. We look forward to your contributions! <\/p>\n<h2 id=\"the-ef-core-community-standup\">The EF Core Community Standup<\/h2>\n<p>The EF Core team is now live streaming every other Wednesday at 10am Pacific Time, 1pm Eastern Time, or 17:00 UTC. Join the stream to ask questions about the EF Core topic of your choice, including the latest preview release. <\/p>\n<ul>\n<li><a href=\"https:\/\/dotnet.microsoft.com\/platform\/community\/standup\">Visit the .NET Community Standup<\/a> page to preview upcoming shows and view recordings from past shows<\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/efcore\/discussions\/21371\">Suggest a guest or project, including your own<\/a> by posting to the linked discussion<\/li>\n<li>You can also <a href=\"https:\/\/github.com\/dotnet\/efcore\/discussions\/21192\">request an EF Core demo<\/a><\/li>\n<\/ul>\n<h2 id=\"documentation-and-feedback\">Documentation and Feedback<\/h2>\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<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<tr>\n<td><a href=\"https:\/\/github.com\/serpent5\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/contributor_serpent5.png\" alt=\"serpent5\" width=200px><br>Kirk Larkin<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/sdanyliv\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/contributor_sdanyliv.jpg\" alt=\"sdanyliv\" width=200px><br>Svyatoslav Danyliv<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/twenzel\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/contributor_twenzel.jpg\" alt=\"twenzel\" width=200px><br>Toni Wenzel<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/manvydasu\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/contributor_manvydasu.png\" alt=\"manvydasu\" width=200px><br>manvydasu<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/brandongregoryscott\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/05\/contributor_AlexanderTaeschner.png\" alt=\"brandongregoryscott\" width=200px><br>Brandon Scott<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/uncheckederror\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/contributor_uncheckederror.jpg\" alt=\"uncheckederror\" width=200px><br>Thomas Ryan<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/rocke97\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/contributor_rocke97.jpg\" alt=\"rocke97\" width=200px><br>Aaron Gunther<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/jonlouie\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/07\/contributor_jonlouie.jpg\" alt=\"jonlouie\" width=200px><br>Jon Louie<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/mohsinnasir\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/07\/contributor_mohsinnasir.jpg\" alt=\"mohsinnasir\" width=200px><br>Mohsin Nasir<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/seekingtheoptimal\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/07\/contributor_seekingtheoptimal.jpg\" alt=\"seekingtheoptimal\" width=200px><br>B\u00e1lint Szab\u00f3<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/MartinBP\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/07\/contributor_MartinBP.png\" alt=\"MartinBP\" width=200px><br>Martin Boye Petersen<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/Ropouser\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/07\/contributor_ropouser.png\" alt=\"Ropouser\" width=200px><br>Duje \u0110akovi\u0107<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/codemillmatt\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/07\/contributor_codemillmatt.jpg\" alt=\"codemillmatt\" width=200px><br>Matt Soucoup<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/shahabganji\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/07\/contributor_shahabganji.jpg\" alt=\"shahabganji\" width=200px><br>Saeed Ganji<\/a><\/td>\n<td><a href=\"https:\/\/github.com\/AshkanAbd\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/07\/contributor_AshkanAbd.png\" alt=\"AshkanAbd\" width=200px><br>Ashkan Abd<\/a><\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Today, the Entity Framework Core team announces the seventh preview release of EF Core 5.0. This release includes a factory to create DbContext instances, the ability to reset DbContext state, Cosmos DB improvements including enhanced support for configuration options and partition keys, and much more. In this post What&#8217;s New in EF Core 5 Preview [&hellip;]<\/p>\n","protected":false},"author":368,"featured_media":28988,"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,117],"class_list":["post-28986","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","tag-releases"],"acf":[],"blog_post_summary":"<p>Today, the Entity Framework Core team announces the seventh preview release of EF Core 5.0. This release includes a factory to create DbContext instances, the ability to reset DbContext state, Cosmos DB improvements including enhanced support for configuration options and partition keys, and much more. In this post What&#8217;s New in EF Core 5 Preview [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/28986","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=28986"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/28986\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/28988"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=28986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=28986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=28986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}