1
好的,這是我的NHibernate問題。NHibernate:通過ID集合訂購結果
我有一組動態更改的ID,所以我無法硬編碼這些值。使用這些ID,我需要使用這些ID排序查詢。
集ID(類型「長」)用命令(這些動態改變):
{8, 6, 23, 3, 7, 1, 9}
從這些喂,我從我的查詢的結果如下(因爲它有其他的WHERE子句) :
{6, 7, 23, 8, 1}
最後,這些結果應該用年初設定指定的ID進行排序,以便看起來像這樣:
{8, 6, 23, 7, 1}
我不能在內存中執行此操作的原因是因爲查詢還有一個.take()值(例如10行),因此在結果集受限之前必須在查詢中完成排序,否則我可能會損失數據的。
在MySQL這樣的查詢相當於將是:
ORDER BY CASE ID
WHEN 8 THEN 1
WHEN 6 THEN 2
WHEN 23 THEN 3
WHEN 3 THEN 4
WHEN 7 THEN 5
WHEN 1 THEN 6
WHEN 9 THEN 7
ELSE 8
需要注意的是我不能使用HQL或LINQ的是很重要的。一切都使用Lambda表達式完成。我使用的是NHibernate v3.3.0.4000,.NET 4.0(C#)和MySQL Server v5.5.16。
謝謝。