我遇到了使用nhibernate hql排序的大問題。我有一個表LICENSE有一個屬性USER(對應於一個USER類),它將它鏈接到另一個表USERPROFILE。 USERPROFILE表有一個屬性UserName,它是nvarchar(USER類中的字符串)。 LICENSE的USER屬性可以爲空,具體取決於LICENSE是否被分配。通過使用CASE的NHibernate訂單
我必須獲取按USER屬性排序的已過濾許可證列表。我希望所有使用空用戶的許可證都位於列表的底部,並且所有其他許可證都按照其用戶的USERNAME屬性按字母順序排序。我已使用以下查詢爲此:
from License license where <various filters> order by CASE WHEN User IS NULL THEN '0' ELSE User.UserName END"
我只是列出了只有分配的許可證。所有使用空USER的許可證都不會返回。有人可以幫我在這裏。
此外,當我使用 「ORDER BY CASE WHEN用戶爲null,則 '0' ELSE User.UserName END」,那麼只有與非空用戶的結果出現,但是當我通過CASE使用」訂單時,用戶被NULL THEN'0'ELSE User.UserProfileId END「或簡單地」按用戶排序「所有用戶都出現了,但他們的排序順序基於UserProfileId而不是userName(因爲UserProfileId是外鍵)。我使用了最新版本的nhibernate,但沒有任何成功。
我想知道是否有存在的話沒有辦法做什麼我要完成......
考慮閱讀有關計算器使用-http格式化時
from License license where order by User.UserName END
NHibernate的新版本正在做左連接://stackoverflow.com/editing-help - 它使您的文章很多更具可讀性,並且當他們可以輕鬆地閱讀您的帖子時,人們將會/更可能提供幫助 –