Я хотел бы отсортировать свой результат как это:
Как я могу сделать это с ICriteria? Я должен создать свой собственный класс Порядка, или он может быть сделан с существующим кодом?
ICriteria criteria = Session.CreateCriteria<MyClass>()
.AddOrder(Order.Desc("NullableProperty")) // What do I do here? IProjection? Custom Order class?
.AddOrder(Order.Asc("OtherProperty"));
Я хотел бы иметь порядок как это:
NullableProperty OtherProperty
---------------- -------------
1 2
8 7
5 9
NULL 1
NULL 3
NULL 8
Я ничего не знаю об ICriteria, но вот мысль. Вы можете попробовать использовать собственный SQL для загрузки - другими словами, блок
в вашем отображении, который дает вам сортируемый столбец. В Oracle это будет примерно так:
<sql-query ...>
<return ...>
select *, nvl2(my_column, 1, 0) as not_null
from my_table
where id=?
for update
</sql-query>