在nhibernate中排序整数或十进制列

时间:2012-11-14 09:14:55

标签: asp.net-mvc-3 nhibernate

我正在尝试对十进制或整数列进行排序。但排序升序零排在最后。

代码是:

criteria.AddOrder(Order.Asc(Projections.Cast(NHibernateUtil.Decimal,  Projections.Property("cloumn1")))));

输出:

35342860
36870852
87654321
213123213
0
0

代码中有任何问题吗?或者什么是解决方案?

1 个答案:

答案 0 :(得分:0)

这些很可能是空值。您可以查看使用条件限制或将其设置为默认值为0的非可空列,这似乎就是您所追求的。

条件限制将是这样的

.AddOrder
    (
        Order.Asc
        (
            Projections.Conditional
            (
                Restrictions.IsNull("cloumn1"),
                Projections.Constant(1),
                Projections.Constant(0)
            )
        )
    )

如果你输入第一个排序将把空值放在顶部并显示为0