-
Notifications
You must be signed in to change notification settings - Fork 1
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
OrderBy sur de Guid #183
OrderBy sur de Guid #183
Conversation
@Poltuu tu pourras regarder cette PR qui met en évidence un pb sur le OrderBy sur les Guid ? Soit on les interdit, soit on corrige le pb (via le .ToString( ) ou autre alternative) |
En fait ça n'a pas de sens de faire un order by sur des guids, car leur valeur est random. |
Linked : #175 |
je ne vois pas l'intérêt d'interdire de trier par guid, je peux même imaginer des cas ou ça peut être utile. Je vais surtout essayer de faire en sorte que le truc fonctionne en natif |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
j'ai fixé:
- la possibilité de rajouter un TOString() dans un orderby
- le orderby natif sur guid ou guid? qui rajoute automatiquement ce .ToString()
Codecov Report
@@ Coverage Diff @@
## master #183 +/- ##
=========================================
+ Coverage 71.65% 71.86% +0.2%
=========================================
Files 113 113
Lines 2844 2851 +7
Branches 291 292 +1
=========================================
+ Hits 2038 2049 +11
+ Misses 682 678 -4
Partials 124 124
Continue to review full report at Codecov.
|
J'ai pas du tout mais alors pas du tout compris 😄 |
api/users?orderby=managerId,asc pour voir en gros qui est managé par la même personne. Dans certains cas, c'est très pratique en debug |
@Poltuu je te laisse prendre la main sur cette PR |
Le nouveau test plante à cause du .ToString()
Si on l'enlève alors le TU passe
Mais l'autre test, celui qui ne passe pas, correspond à un order by sur un Guid (uniqueidentifier en SQL) qui ne fonctionne pas en SQL, et pour cause, un "order by id asc" en SQL sur des GUID ne marche pas, même en faisant une req SQL directe.
D'où la nécessité du .ToString() en LINQ qui va convertir en string en SQL et le order by SQL fonctionne alors.
PS : si on peut corriger facilement tant mieux, sinon on peut mettre un gros warning comme quoi ça sert à rien d'essayer de trier sur des Guid => la classe OrderBy pourrait même planter explicitement si on lui demande de trier sur des Guid, c'est une alternative possible.