Boppity Bop
Boppity Bop

Reputation: 10473

Disable EF Core "QuerySplittingBehavior.SingleQuery" warning

I use a lot of multiple Include on EF entities in my aspnet core project. I now have prod log littered with those:

13:49:54.0149751|Warn|Microsoft.EntityFrameworkCore.Query|Compiling a
  query which loads related collections for more than one collection
  navigation either via 'Include' or through projection but no 
  'QuerySplittingBehavior' has been configured. By default Entity 
  Framework will use 'QuerySplittingBehavior.SingleQuery' which can 
  potentially result in slow query performance. See 
  https://go.microsoft.com/fwlink/?linkid=2134277 for more information. 
  To identify the query that's triggering this warning call 
  'ConfigureWarnings(w => 
    w.Throw(RelationalEventId.MultipleCollectionIncludeWarning))' 

I would like to disable either the warning all together or filter it before it gets logged.

I use nlog.web and the logging is configured in appSettings.json

  "Logging": {
    "LogLevel": {
      "Default": "Trace",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.EntityFrameworkCore": "Warning",
      "IdentityServer4": "Information"
    }

Upvotes: 1

Views: 4267

Answers (1)

DavidG
DavidG

Reputation: 119017

You can disable the warning for that message by configuring your DbContext. In the OnConfiguring method, add this line:

optionsBuilder
    .ConfigureWarnings(x => x.Ignore(RelationalEventId.MultipleCollectionIncludeWarning));

However, I would suggest that fixing the queries that are causing this in the first place - these warnings exist for a good reason.

Upvotes: 7

Related Questions