Enable Global Split Queries in .Net Core
This configuration ensures that all LINQ queries using Include() in Entity Framework Core are executed using split queries by default. This helps prevent performance issues caused by Cartesian explosion when loading multiple related collections. It is enabled by setting UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery) in the DbContext configuration.
builder.Services.AddDbContext<YourDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")) .UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery) );
Alternative configuration in DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder .UseSqlServer(connectionString) .UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); }
Or in OnModelCreating for specific configurations
protected override void OnModelCreating(ModelBuilder modelBuilder) { // Configure split query behavior modelBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); base.OnModelCreating(modelBuilder); }