-
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
Ordered Collection Navigation Properties (aka Indexed Collections) #9067
Comments
See also #2919 |
This in fact part of #2919, but I like the level of detail here. |
Has there been any progress with this? Ordering navigation properties still does not translate into the expected ordering in EFC5.0.5 var form = _db.Forms
.Include(x => x.Sections)
.ThenInclude(x => x.Rows.OrderBy(y => y.Order)) //Nope!
.ThenInclude(x => x.Fields.OrderBy(y => y.Order)) //Nope here too!
.ThenInclude(x => x.FieldType)
.AsSplitQuery()
.SingleOrDefaultAsync(x =>
x.Id == formId) If there is no intention of ever fixing this, it might be best to show a warning when an attempt to order a navigation property is made to avoid confusion. |
+1 for this issue. double order bys doing nothing is very annoying especially for more complex objects |
Hey, Please see #24706 Thanks |
Related: #15585 |
I believe a variant of this problem is that if the included entities are of the same type (i.e. in the same table) as the primary entities. If the OrderBy specified in the include is inconsistent with the OrderBy of the primary selection, then evidently the OrderBy of the include is ignored. This makes it more challenging to load a tree structure from a table and have the tree nodes sorted one way in the main selection (say, by name) while having the included children sorted a different way (say, by child relative position). |
This is also something that should be used for any collections mapped to JSON columns. |
I don't understand how the proposed feature would work. If you add a new LineItem without having loaded any Orders or LineItems, what value would it use for OrderIndex? |
@stevendarby We would probably restrict this to owned collections, so there has to be always a containing Order whenever a LineItem is added. |
We should support specifying an index column for collection navigation properties so that the order can be maintained transparently.
With types like this...
...configured something like this...
...a table like this would be created.
Then whenever
Order.LineItems
is loaded, the order would be guaranteed.The text was updated successfully, but these errors were encountered: