Skip to content

Relational split query mode for collection includes #20892

Closed

Description

Design meeting decisions from first iteration of split queries

  • In first iteration we will do split queries for basic include scenarios. e.g. context.Customers.Include(c => c.Orders)
    • Multiple query roots composed may work in simple scenarios.
    • Filtered include (new in 5.0), would work with Where/OrderBy naturally.
    • Filtered include with Skip/Take won't work at least in early iterations.
  • EF Core sends separate DbCommands for each split query. Each DbCommand's DbReader will be buffered in BufferedDataReader, since we need data from all DbReaders to generate first result. EF Core will open multiple datareaders one for each query.
    • For Async queries we will reader from DataReader async way into BufferedDataReader
    • From BufferedDataReader we will always read sync way to materialize result
  • There will be quaryable operator - AsSplitQuery which will mark the query to use split query methods.

Once above is released in preview, we will look for feedback on what to expand further.
Actual work item for #18022. Please use #18022 for discussions or any feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions