我有一个hibernate查询返回一个对象列表,我想按标题排序。这是一个用户维护的字段,我们的一些客户喜欢在数字前加上标题,这不是我能控制的。数据是这样的:自然排序NHibernate
- 1 first thing
- 2 second thing
- 5 fifth thing
- 10 tenth thing
- 20 twentieth thing
- A thing with no number
传统
.AddOrder(Order.Asc("Name"))
是导致文本排序:
- 1 first thing
- 10 tenth thing
- 2 second thing
- 20 twentieth thing
- 5 fifth thing
- A thing with no number
这是正确的,因为这是一个nvarchar的领域,但没有任何我可以通过这种方式获得数字吗?
似乎有几个解决方法涉及前缀所有领域与前导0和类似但通过NHibernate做任何这些工作?
此应用程序在Oracle和MsSQL上可交换使用。
干杯,
马特
我做了类似的事情,但在C#中,唯一的情况是这是一个问题,当我有一个我希望向用户展示的项目的详尽列表,所以我检索对象(使用投影来获取id&名称),然后应用LINQ排序与自定义比较器来整理数字。 – 2010-08-10 15:33:44
只是试图给你投票,因为这个答案看起来是正确的,但我没有足够的代表。相反,我将其标记为答案。 – 2010-08-10 15:34:39