-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Query: QueryFilters/Defining queries are not applied recursively #13361
Labels
breaking-change
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
type-bug
Milestone
Comments
Note from triage: we are okay with a new cache entry when the filter is disabled. |
ajcvickers
added
poachable
propose-punt
type-bug
and removed
poachable
propose-punt
type-enhancement
labels
May 10, 2019
We should at least make sure it throws for 3.0 instead of returning incorrect results. |
maumar
added a commit
that referenced
this issue
Jun 28, 2019
Also, fix to #13361 - Query: QueryFilters/Defining queries are not applied recursively When nav rewrite constructs new EntityQueryable it now looks into EntityType for any query filter annotations and applies them on top. Those predicates are parameterized and the parameters created are injected into the context as part of query execution expression. Query filters also fundamentally change how nav expansion creates new navigations - before navigations were being added one by one, so we could easily build the NavigationTree by a new node representing given INavigation. With query filters, the newly created navigation may contain arbitrarily complex NavigationTree structure already (if the query filter itself has some navigations). To support that, when we create new EntityQueryable for join or collection navigation, we need to visit it (creating NavigationExpansionExpression) and merge the resulting NavigationTree with the previous navigation tree.
@maumar Is this fixed/not needed now? |
I believe fixed. |
maumar
added
the
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
label
Aug 22, 2019
fixed indeed, closing |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
breaking-change
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
type-bug
As described in #11803, query filters (and also defining queries included), are not applied recursively. Fix for that issue apply recursion at expansion time but it became quite limited in terms of what it can do. Specifically following issues were ignored
Effectively the fix only made it possible to apply recursively only when referencing direct dbset or dbquery of entitytype without any annotation.
Fixing this requires us to apply few operations like extract annotations, nav expansion, query optimizer on expanded part and apply it recursively. Currently it is too fragile to effectively arrive at terminating condition (due to relinq's in-place QueryModel mutation).
Hence reverting the fix for #11803
The text was updated successfully, but these errors were encountered: