{"id":33378,"date":"2021-06-17T12:15:43","date_gmt":"2021-06-17T19:15:43","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=33378"},"modified":"2021-07-02T08:37:11","modified_gmt":"2021-07-02T15:37:11","slug":"announcing-entity-framework-core-6-0-preview-5-compiled-models","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-entity-framework-core-6-0-preview-5-compiled-models\/","title":{"rendered":"Announcing Entity Framework Core 6.0 Preview 5: Compiled Models"},"content":{"rendered":"<p>Today, the Entity Framework Core team announces the fifth preview release of EF Core 6.0. This release includes the first iteration of compiled models. If startup time for your application is important and your EF Core model contains hundreds or thousands of entities, properties, and relationships, this is one release you don&#8217;t want to ignore.<\/p>\n<h2>TL;DR;<\/h2>\n<ul>\n<li>Compiled models dramatically reduce startup time for your application.<\/li>\n<li>The models are generated (similar to how migrations are) so they should be refreshed whenever your model changes.<\/li>\n<li>Some features are not currently supported by compiled models, so be aware of the limitations when you try them out.<\/li>\n<\/ul>\n<h2>Background<\/h2>\n<p><em>How does 10x performance sound to you?<\/em> Our team created a sample project with a <code>DbContext<\/code> that contains <strong>449 entity types, 6,390 properties and 720 relationships<\/strong>. I wrote a console app that loops several times, creates a new instance of a <code>DbContext<\/code> and loads a set of entities with no filters or ordering. The start-up time for the first run consistently takes around <strong>two seconds<\/strong> on my laptop, with subsequent cached instances weighing in at about 1.5 seconds. Here&#8217;s the output from a run:<\/p>\n<pre><code class=\"language-bash\">$ dotnet run -c Release\r\nModel has:\r\n  449 entity types\r\n  6390 properties\r\n  720 relationships\r\nInstantiating context...\r\nIt took 00:00:02.1603163.\r\nInstantiating context...\r\nIt took 00:00:01.6268628.\r\nInstantiating context...\r\nIt took 00:00:01.7144346.\r\nInstantiating context...\r\nIt took 00:00:01.6090380.\r\nInstantiating context...\r\nIt took 00:00:01.7049987.<\/code><\/pre>\n<p>After testing the baseline application, I used the new <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/cli\/dotnet\">EF Core tools Command Line Interface (CLI)<\/a> feature to optimize the <code>DbContext<\/code>:<\/p>\n<pre><code class=\"language-bash\">dotnet ef dbcontext optimize -output-dir MyCompiledModels --namespace MyCompiledModels<\/code><\/pre>\n<p>The tool gave me instructions to add a single line of code to my <code>DbContext<\/code> configuration:<\/p>\n<pre><code class=\"language-csharp\">options.UseModel(MyCompiledModels.BlogsContextModel.Instance);<\/code><\/pre>\n<p>I made the update and re-ran the code to receive a <strong>10x performance gain<\/strong> with the initial model taking <strong>257ms<\/strong> to complete. The cached model reduced additional calls to just <strong>10ms<\/strong>.<\/p>\n<pre><code class=\"language-bash\">$ dotnet run -c Release\r\nModel has:\r\n  449 entity types\r\n  6390 properties\r\n  720 relationships\r\nInstantiating context...\r\nIt took 00:00:00.2573627.\r\nInstantiating context...\r\nIt took 00:00:00.0132345.\r\nInstantiating context...\r\nIt took 00:00:00.0119556.\r\nInstantiating context...\r\nIt took 00:00:00.0101717.\r\nInstantiating context...\r\nIt took 00:00:00.0139057.<\/code><\/pre>\n<h2>A peek at the query pipeline<\/h2>\n<p>EF Core performs quite a bit of work to get from your application to returning the first result of the first query your application processes. Let&#8217;s break down the following two statements and go &#8220;behind the scenes&#8221; to see what happens.<\/p>\n<pre><code class=\"language-csharp\">using var myContext = new MyContext();\r\nvar results = myContext.MyWidgets.ToList();<\/code><\/pre>\n<h3>DbContext instantiation<\/h3>\n<p>The first step is creating an instance of the context. The first time a <code>DbContext<\/code> is created, EF Core will create and compile delegates to set the table properties you expose by using <code>DbSet&lt;Entity&gt;<\/code>. This simply creates the delegates to set the properties so you can query them right away.<\/p>\n<blockquote><p><strong>Performance tip:<\/strong> you can avoid the overhead of <code>DbSet<\/code> initialization by using an alternate approach such as the <code>context.Set&lt;Entity&gt;()<\/code> API call.<\/p><\/blockquote>\n<h3>DbContext (lazy) initialization<\/h3>\n<p>After the <code>DbContext<\/code> is created, EF Core &#8220;goes to sleep&#8221; until you use it. The first time you use a context by accessing one of its APIs (such as navigating an entity and returning results), the context is initialized. This will run the <code>OnConfiguring<\/code> method to establish the <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/providers\/\">proper provider<\/a> and database connections as well as other settings. For example, this is the perfect place to use the <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/logging-events-diagnostics\/simple-logging\">simple logging<\/a> feature by calling the new <code>LogTo<\/code> extension on the <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/dbcontext-configuration\/#dbcontextoptions\">options builder<\/a>.<\/p>\n<h3>Service provider<\/h3>\n<p>EF Core uses a service-based architecture and has an internal dependency injection framework. This provider is built internally but is designed to work with external DI solutions such as the <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/dbcontext-configuration\/#dbcontext-in-dependency-injection-for-aspnet-core\">service provider in ASP.NET Core<\/a>.<\/p>\n<blockquote><p><strong>Performance tip:<\/strong> much of the overhead described so far can be mitigated by using <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/performance\/advanced-performance-topics#dbcontext-pooling\">context pooling<\/a>. This enables a pool of reusable context instances that are already initialized.<\/p><\/blockquote>\n<h3>Model building<\/h3>\n<p>To understand how a domain object (C# class) relates to the tables and relationships in the database, EF Core builds an internal model that represents all the types, properties, constraints, and relationships that it finds in your <code>DbContext<\/code>. This is a metadata model and includes the call to <code>OnModelCreating<\/code> that can be overridden to provide fluent configuration of the model.<\/p>\n<h3>Query compilation<\/h3>\n<p>A major reason why developers use EF Core is its ability to parse Language Integrated Queries (LINQ) into the database dialect. This is an advanced stage because it involves traversing a potentially complex expression tree and translating it into SQL. Something trivial like a projection:<\/p>\n<pre><code class=\"language-csharp\">var projection = myQuery.Select(obj =&gt; new { id = obj.EntityId, name = obj.Identifier });<\/code><\/pre>\n<p>Seems easy enough to translate:<\/p>\n<pre><code class=\"language-sql\">SELECT EntityId, Identifier FROM ...<\/code><\/pre>\n<p>But what about something more complicated, like this?<\/p>\n<pre><code class=\"language-csharp\">var pairs = (from a1 in context.Attendees\r\n                from a2 in context.Attendees\r\n                where a1.Id != a2.Id\r\n                select new\r\n                {\r\n                    a1 = a1.Id,\r\n                    a1LastName = a1.LastName,\r\n                    a1FirstName = a1.FirstName,\r\n                    a2 = a2.Id,\r\n                    a2LastName = a2.LastName,\r\n                    a2FirstName = a2.FirstName,\r\n                    sessionCount = \r\n                    a1.Sessions.Select(s =&gt; s.Id)\r\n                    .Intersect(a2.Sessions.Select(s =&gt; s.Id)).Count()\r\n                }).OrderByDescending(shared =&gt; shared.sessionCount)\r\n            .Take(5);<\/code><\/pre>\n<p>This is ultimately parsed into native SQL, intersection and all. The first time that EF Core encounters a query, it parses the query to determine which parts are dynamic. It then compiles the static parts of the query and parameterizes the dynamic aspects to expedite translation into SQL by using a SQL template.<\/p>\n<h3>Run the query<\/h3>\n<p>Finally! The query is now run. To avoid the overhead of performing these steps every time, EF Core caches the delegates for <code>DbSet<\/code> properties, the internal service provider, the constructed model, and the compiled query. This results in much faster performance after the queries are successfully run the first time.<\/p>\n<p>You can visualize these steps using the following diagram (note the cache boxes have strike-through to show they are disabled for our benchmark tests):<\/p>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/06\/efcompiledsteps.jpg\" alt=\"EF Core initialization steps, Announcing Entity Framework Core 6.0 Preview 5\" width=\"1024\" height=\"577\" \/><\/p>\n<p>Although most of the pipeline is already streamlined, model compilation was an area we knew could improve.<\/p>\n<blockquote><p><strong>A note on source generators.<\/strong> The approach the team chose is to provide a command that generates the source code files that you can then incorporate into your project to build the compiled model. We are often asked why we didn&#8217;t choose <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/introducing-c-source-generators\/\">source generators<\/a>. The answer is that source generators run as user code inside the Visual Studio process. EF Core must build and run the context to obtain information about the model. If an exception is thrown as part of the process, this could potentially force Visual Studio to hang or crash.<\/p><\/blockquote>\n<p>As with most technology, compiled models do have trade-offs. Let&#8217;s look at the pros and cons.<\/p>\n<h2>Pros and cons<\/h2>\n<p>The pros should be clear. As your model grows larger, your startup time remains fast. Here is a comparison of startup time between compiled and non-compiled models based on the size of the model.<\/p>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/06\/compiledmodels.png\" alt=\"Startup time by model size, Announcing Entity Framework Core 6.0 Preview 5\" width=\"899\" height=\"512\" \/><\/p>\n<p>Here are some cons to consider:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/ef\/core\/querying\/filters\">Global query filters<\/a> are not supported.<\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/ef\/core\/querying\/related-data\/lazy\">Lazy loading proxies<\/a> are not supported.<\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/ef\/core\/change-tracking\/change-detection#change-tracking-proxies\">Change tracking proxies<\/a> are not supported.<\/li>\n<li>Custom <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/modeling\/dynamic-model#imodelcachekeyfactory\">IModelCacheKeyFactory<\/a> implementations are not supported.<\/li>\n<li>The model must be manually synchronized by regenerating it any time the model definition or configuration change.<\/li>\n<\/ul>\n<blockquote><p><strong>Tip:<\/strong> if supporting any of these features is critical to your success, please <a href=\"https:\/\/github.com\/dotnet\/efcore\/issues\">find the issue<\/a> and upvote it or add your comments and thoughts, or <a href=\"https:\/\/github.com\/dotnet\/efcore\/issues\/new\">file a new issue<\/a> to let us know.<\/p><\/blockquote>\n<p>Now you&#8217;ve learned the background. How do you get started?<\/p>\n<h2>In conclusion<\/h2>\n<p>To start using compiled models today, reap the performance benefits and have the opportunity to provide us with feedback before we release the final EF Core 6.0 version, start by grabbing the latest preview (instructions are below) and installing the <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/cli\/dotnet\">latest EF Core CLI<\/a>. The new tool command looks like this (all parameters are optional):<\/p>\n<pre><code class=\"language-bash\">dotnet ef dbcontext optimize -c MyContext -o MyFolder -n My.Namespace <\/code><\/pre>\n<p>Inside the NuGet package manager console you can use this:<\/p>\n<pre><code class=\"language-powershell\">Optimize-DbContext -Context MyContext -OutputDir MyFolder -Namespace My.Namespace<\/code><\/pre>\n<p>The tool will instruct you to add a line like this to your options configuration:<\/p>\n<pre><code class=\"language-csharp\">opts.UseModel(My.Namespace.MyContextModel.Instance);<\/code><\/pre>\n<p>We hope you benefit from this new feature and can provide us with early feedback. Check out the <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/what-is-new\/ef-core-6.0\/plan\">EF Core 6.0 plan<\/a>. In addition to other work, the team has prioritized a number of <a href=\"https:\/\/github.com\/dotnet\/efcore\/issues?q=is%3Aopen+is%3Aissue+label%3Aarea-cosmos+milestone%3A6.0.0\">Azure Cosmos DB provider features<\/a>. Please upvote the features that are important to you and share any feedback you may have! Other features in the preview 5 release will be posted in <a href=\"https:\/\/docs.microsoft.com\/ef\/core\/what-is-new\/ef-core-6.0\/whatsnew#ef-core-60-preview-5\">EF Core 6.0 What&#8217;s New<\/a>.<\/p>\n<h2>How to get EF Core 6.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><code class=\"language-bash\">dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 6.0.0-preview.5.21301.9<\/code><\/pre>\n<p>This following table links to the preview 5 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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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\/6.0.0-preview.5.21301.9\">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 6.0 preview 5 release of the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Data.Sqlite.Core\/6.0.0-preview.5.21301.9\">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>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\/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<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Thank you to our contributors!<\/h2>\n<p>We are grateful to our amazing community of contributors. Our success is founded upon the shoulders of your efforts and feedback. If you are interested in contributing but not sure how or would like help, please reach out to us! We want to help you succeed. We would like to publicly acknowledge and thank these contributors for investing in the success of EF Core 6.0.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: center;\"><\/th>\n<th style=\"text-align: center;\"><\/th>\n<th style=\"text-align: center;\"><\/th>\n<th style=\"text-align: center;\"><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/AkinSabriCam\">AkinSabriCam<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/alexernest\">alexernest<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/alexpotter10\">alexpotter10<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Ali-YousefiTelori\">Ali-YousefiTelori<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3157\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3225\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3143\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23946\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23946\">#2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/alireza-rezaee\">alireza-rezaee<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/andrejs86\">andrejs86<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/AndrewKitu\">AndrewKitu<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/ardalis\">ardalis<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3232\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3182\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3070\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3091\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/CaringDev\">CaringDev<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/carlreid\">carlreid<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/carlreinke\">carlreinke<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/cgrevil\">cgrevil<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23585\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23585\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24498\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24498\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23694\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23694\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3154\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/cgrimes01\">cgrimes01<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/cincuranet\">cincuranet<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/dan-giddins\">dan-giddins<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/dannyjacosta\">dannyjacosta<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3038\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24234\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24234\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2714\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3185\">#4<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2910\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24839\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24839\">#2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/dennisseders\">dennisseders<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/DickBaker\">DickBaker<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/ErikEJ\">ErikEJ<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/fagnercarvalho\">fagnercarvalho<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2839\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2845\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2848\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2987\">#4<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2997\">#5<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3007\">#6<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2990\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22900\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22900\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22937\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22937\">#4<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22938\">#5<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22938\">#6<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2897\">#7<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2984\">#8<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3187\">#9<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3197\">#10<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3230\">#11<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3257\">#12<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23094\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23094\">#2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/FarshanAhamed\">FarshanAhamed<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/filipnavara\">filipnavara<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/garyng\">garyng<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Geoff1900\">Geoff1900<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3181\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23591\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23591\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3045\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3046\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3047\">#3<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3025\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/gfoidl\">gfoidl<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Giorgi\">Giorgi<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/GitHubPang\">GitHubPang<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/gurustron\">gurustron<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22923\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22923\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24147\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24147\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3106\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3107\">#4<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3097\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3010\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/hez2010\">hez2010<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/HSchwichtenberg\">HSchwichtenberg<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/jaliyaudagedara\">jaliyaudagedara<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/jantlee\">jantlee<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24211\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24211\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2894\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24499\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24499\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2786\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/jeremycook\">jeremycook<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/jing8956\">jing8956<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/joakimriedel\">joakimriedel<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/joaopgrassi\">joaopgrassi<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2827\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3146\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23437\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23437\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22849\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22849\">#2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/josemiltonsampaio\">josemiltonsampaio<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/KaloyanIT\">KaloyanIT<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/khalidabuhakmeh\">khalidabuhakmeh<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/khellang\">khellang<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2927\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23563\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23563\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23666\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23666\">#4<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2858\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2962\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2982\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/koenbeuk\">koenbeuk<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/kotpal\">kotpal<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/larsholm\">larsholm<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/lauxjpn\">lauxjpn<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2921\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2763\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24624\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24624\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24806\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24806\">#2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/leonardoporro\">leonardoporro<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/lexkazakov\">lexkazakov<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/mariuz\">mariuz<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/marodev\">marodev<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2883\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3191\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3124\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24951\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24951\">#2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/MartinWestminster\">MartinWestminster<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Marusyk\">Marusyk<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/MattKomorcec\">MattKomorcec<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/MaxG117\">MaxG117<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3118\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23039\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23039\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24016\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24016\">#4<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24203\">#5<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24203\">#6<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24204\">#7<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24204\">#8<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24247\">#9<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24247\">#10<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24284\">#11<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24284\">#12<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24286\">#13<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24286\">#14<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24323\">#15<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24323\">#16<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24728\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24728\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2898\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/mefateah\">mefateah<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/meggima\">meggima<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/mguinness\">mguinness<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/michalczerwinski\">michalczerwinski<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3065\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23605\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23605\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3227\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24793\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24793\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24814\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24814\">#4<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24887\">#5<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24887\">#6<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/mrlife\">mrlife<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/msawczyn\">msawczyn<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/MSDN-WhiteKnight\">MSDN-WhiteKnight<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/natashanikolic\">natashanikolic<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3094\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3128\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3129\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3132\">#4<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2917\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2887\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2920\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/nmichels\">nmichels<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/nschonni\">nschonni<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/OKTAYKIR\">OKTAYKIR<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/OOberoi\">OOberoi<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23091\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23091\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2775\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2776\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2779\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2780\">#4<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3145\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3163\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Oxyrus\">Oxyrus<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/pkellner\">pkellner<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/ptupitsyn\">ptupitsyn<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/ralmsdeveloper\">ralmsdeveloper<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3110\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2954\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3202\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/19473\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/19473\">#2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/RaymondHuy\">RaymondHuy<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/riscie\">riscie<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/SergerGood\">SergerGood<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Shirasho\">Shirasho<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22514\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/22514\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23145\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23145\">#4<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23232\">#5<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23232\">#6<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23424\">#7<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23424\">#8<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/20792\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/20792\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24750\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24750\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24751\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24751\">#4<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24752\">#5<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24752\">#6<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24753\">#7<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24753\">#8<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24755\">#9<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24755\">#10<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2988\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/SimonCropp\">SimonCropp<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/stevendarby\">stevendarby<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Strepto\">Strepto<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/teo-tsirpanis\">teo-tsirpanis<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2957\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/2959\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24746\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24746\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24141\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24141\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3123\">#1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/the-wazz\">the-wazz<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/tkp1n\">tkp1n<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Tomkaa\">Tomkaa<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/umitkavala\">umitkavala<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23551\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23551\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23014\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23014\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23933\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23933\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23322\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23322\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23562\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23562\">#4<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/uncheckederror\">uncheckederror<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/Varorbc\">Varorbc<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/vincent1405\">vincent1405<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/vonzshik\">vonzshik<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3168\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3141\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24020\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24020\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24775\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24775\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24778\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24778\">#4<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/vytotas\">vytotas<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/wdesgardin\">wdesgardin<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/wmeints\">wmeints<\/a><\/strong><\/td>\n<td style=\"text-align: center;\"><strong><a href=\"https:\/\/github.com\/yesmey\">yesmey<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/EntityFramework.Docs\/pull\/3158\">#1<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24588\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24588\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23873\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/23873\">#2<\/a><\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24111\">#1<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24111\">#2<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24155\">#3<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24155\">#4<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24160\">#5<\/a>, <a href=\"https:\/\/github.com\/dotnet\/efcore\/pull\/24160\">#6<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Learn about blazing fast compiled models and other enhancements to EF Core 6.0 preview 5.<\/p>\n","protected":false},"author":368,"featured_media":33489,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,196,197,859],"tags":[9,30,70,71],"class_list":["post-33378","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-dotnet-core","category-aspnet","category-entity-framework","tag-net-core","tag-announcement","tag-entity-framework","tag-entity-framework-core"],"acf":[],"blog_post_summary":"<p>Learn about blazing fast compiled models and other enhancements to EF Core 6.0 preview 5.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/33378","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=33378"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/33378\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/33489"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=33378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=33378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=33378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}