There are several query-related efforts being worked on or considered for the 3.0 release. This issue is a single place to track and discuss these efforts at a high level as we make progress and decide on direction.
Initial areas to consider:
Increase test coverage
Fix query bugs
Decide on architecture changes, if any. For example internalize or remove Relinq.
Consolidate and document guiding principles for different types of translations and evaluations. For example, Should we be treating objects created by the user in a query differently from the ones we materialize? #12668 , Query: revisit design for function non-determinism and client evaluatability #12672 , Query: Consider adding method to force client evaluation of an expression #12736 , Query: Interpret path passed to Include() and allow partial matches #12737 , Warning when query materializes an entity outside the top projection #12667 , .Any() on collection navigations after projection can cause client-side evaluation #12728 , Query: Consider adding method to force client evaluation of an expression #12736 , Make IQueryOptimizer/QueryOptimizer non-internal #12756 , Query: Enable translations that generate different SQL depending on a value to be cached #12764 , Query: Include for both navigations of One-To-Many relationship should use split query #12775 , Change split query implementation to fetch dependents by keys, without reevaluating principal query #12776 , Query: compilation error (dangling qsre) for query with SelectMany, order by and include collection #12794 , Support (custom) member/method translations on value-converted types #10434 , Query: consider expanding null safety beyond nav rewrite #12284 (null safety), ParameterExtractingExpressionVisitor::GetValue #13899 , Query: projecting naked correlated collection when tracking should return collection object of it's parent entity #14046 , Query: Top projection should fully materialize and track entities before they are passed to client methods #12761 (comment) (top projection rewrite), Query: correlated collection optimization doesn't get applied for subqueries with AsQueryable #12195
Decide on keeping full client-eval fallback, going to explicit client-eval only, or moving to a mixture. For example, see Using Func<> for where predicate does not work #12765 , Provide a way to control client evaluation behavior on a per query basis #12844 , InMemory provider queries on tracked entities (unlike SQLServer provider) #12945 , Query: Allow non static methods in top level projection #13048 , Support client evaluation when store evaluation is not appropriate #10265
There are several query-related efforts being worked on or considered for the 3.0 release. This issue is a single place to track and discuss these efforts at a high level as we make progress and decide on direction.
Initial areas to consider: