2012-11-14 2 views
1

10 진수 또는 정수 열을 정렬하려고합니다. 그러나 오름차순 0이 마지막으로오고 있습니다.nhibernate의 정수 또는 소수 열 정렬

코드는 다음과 같습니다

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

출력 :

35342860 
36870852 
87654321 
213123213 
0 
0 

코드의 모든 문제? 또는 해결책은 무엇입니까?

답변

0

이 값은 대부분 null 값입니다. 조건부 제한을 사용하거나이 값을 null이 아닌 열로 만드는 것으로 볼 수 있습니다.이 열은 기본값 인 0으로, 사용자가 나중에있는 것처럼 보입니다. 정렬하는 동안

조건부 제한은 상단에 null을 넣어 것입니다 첫번째 순서로 넣을 경우이

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

같은 일 0 내가 널 (null)이 고려되지 않습니다 이해

+0

로 표시 할 . 따라서 null 필드 만 항상 마지막으로 표시됩니다. colum1 내가 유창한 nhibernate에 매핑을했습니다. int => int?, decimal => decimal에서 column1 데이터 형식을 변경 했습니까? 매핑 클래스에서. 말된다. 고맙습니다. –