J'ai une requête d'hibernation qui retourne une liste d'objets et que je veux commander par un titre. C'est un domaine géré par l'utilisateur et certains de nos clients aiment préfixer leurs titres avec des chiffres, ce n'est pas quelque chose que je peux contrôler. Les données sont quelque chose comme ceci:Natural Trier dans NHibernate
- 1 first thing
- 2 second thing
- 5 fifth thing
- 10 tenth thing
- 20 twentieth thing
- A thing with no number
Une traditionnelle
.AddOrder(Order.Asc("Name"))
se traduit par une sorte de texte:
- 1 first thing
- 10 tenth thing
- 2 second thing
- 20 twentieth thing
- 5 fifth thing
- A thing with no number
Ceci est correct car cela est un champ nvarchar, mais est-il chemin que je peux obtenir les numéros à trier aussi bien?
Il semble y avoir plusieurs solutions de contournement impliquant le préfixage de tous les champs avec les 0 principaux et similaires, mais est-ce que l'une d'entre elles fonctionne avec NHibernate?
Cette application s'exécute de manière interchangeable sur Oracle et MsSQL.
Vive,
Matt
J'ai fait quelque chose de similaire mais en C#, le seul cas c'est un problème quand j'ai une liste exhaustive des éléments que je souhaite montrer à l'utilisateur, donc je récupère les objets (en utilisant une projection name) puis appliquez un ordre LINQ avec un comparateur personnalisé pour trier les nombres. –
Juste essayé de vous voter comme cette réponse semble correcte, mais je n'ai pas assez de rep. Je l'ai marqué comme la réponse à la place. –