Fix ordering the keys according to the ColumnAttribute.Order property #1867
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request fixes issue #1085
Description
In order to ensure a stable ordering of the results with different request, the library adds a default order when required.
When an entity has a composite key, the order of the properties matters, and if not specified correctly, the query may have bad performances.
The fix ensures that the order specified in the model via the ColumnAttribute.Order property is respected when the stable order is ensured by the library.
It does it by configuring the keys in the correct order in the EDM model, and not in the function applying the default order.
Also, previously the order of the key in the model was arbitrarely chosen, which could be suprising for the user when the default order was applied because it would not match what it in the model. Now the order in the model will be the same as the default order.
Side effect
A side effect is that the fix will may change the order to the key in the EDM model.
Checklist (Uncheck if it is not completed)
Additional work necessary
If documentation update is needed, please add "Docs Needed" label to the issue and provide details about the required document change in the issue.