1
當執行下面的代碼時,當我在內存和SQL排序中執行時,會得到不同的結果。任何人都可以解釋這是爲什麼。我期望查詢以完全相同的順序返回記錄。Linq到NHibernate排序不能按預期工作
IQueryable<WaitListListItem> query = GetQuery();
query = query.OrderBy(f => f.CourseNo);
int pageSize = 14;
int startRecord = 6;
IList<WaitListListItem> list1 = query.Skip(startRecord).Take(pageSize).ToList(); // database query paging
IList<WaitListListItem> list2 = query.ToList().Skip(startRecord).Take(pageSize).ToList(); // In Memory paging
Print(pageSize, list1, list2);
int pageSize2 = 14;
int startRecord2 = 0;
IList<WaitListListItem> list3 = query.Skip(startRecord2).Take(pageSize2).ToList(); // database query paging
IList<WaitListListItem> list4 = query.ToList(); // No Paging
Print(pageSize2, list3, list4);
Console.ReadLine();
進一步說明。該順序是正確的,該列表是按字母順序排列的課程編號。但是包含相同課程編號的記錄 – user3845056 2014-11-04 00:32:54
這似乎是分頁和不分頁的問題。在兩種情況下,排序都在DB中完成。它是在DB和內存中完成的分頁。你能爲兩者發佈生成的SQL嗎? – Euphoric 2014-11-04 07:27:52