Closed
Description
openedon May 8, 2020
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 BufferedDataReaderFrom 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