Я столкнулся с большой проблемой при сортировке с использованием nhibernate hql.У меня есть таблица LICENSE, которая имеет свойство USER (соответствует классу USER), который связывает ее с другой таблицей USERPROFILE.Таблица USERPROFILE имеет свойство UserName, которое имеет тип nvarchar (строка в классе USER).Это свойство USER ЛИЦЕНЗИИ может быть нулевым в зависимости от того, назначена ЛИЦЕНЗИЯ или нет.
Мне нужно получить отфильтрованный список лицензий, отсортированный по свойству USER.Я хочу, чтобы все лицензии с нулевыми пользователями были в нижней части списка, а все остальные лицензии были отсортированы в алфавитном порядке в свойстве USERNAME их пользователя.Я использовал следующий запрос для этого:
from License license where <various filters> order by CASE WHEN User IS NULL THEN '0' ELSE User.UserName END"
Все, что я получаю из этого запроса, это список только назначенных лицензий.Все лицензии с нулевым USER не возвращаются.Может кто-нибудь, пожалуйста, помогите мне здесь.
Кроме того, когда я использую «порядок по случаю, когда пользователь равен NULL, то« 0 »ELSE User.UserName END», тогда появляются только те результаты с ненулевыми пользователями, нокогда я использую «порядок по случаю, когда пользователь равен NULL THEN '0' ELSE User.UserProfileId END» или просто «порядок по пользователю», все пользователи появляются, но их порядок сортировки основан на UserProfileId, а не userName (поскольку UserProfileId является внешним ключом).Я использовал последние версии nhibernate, но безуспешно.
Мне интересно, существует ли вообще какой-либо способ сделать то, что я хочу достичь ...