1

10進数または整数の列を並べ替えようとしています。しかし、昇順のゼロをソートしている間、最後に来ています。

コードは次のとおりです。

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

出力:

35342860
36870852
87654321
213123213
0
0

コードに問題はありますか?または解決策は何ですか?

4

1 に答える 1

0

これらはおそらくnull値です。条件付き制限を使用するか、これをデフォルトの0でnull許容でない列にすることを検討できます。これは、あなたが求めているもののようです。

条件付き制限は次のようになります

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

これを最初の順序で入力すると、nullが一番上に表示され、0として表示されます。

于 2012-11-14T09:21:31.797 に答える