2
我有這樣的代碼NHibernate的取跳過不採取儘可能多的,因爲它應該
var items = query.Skip(0).Take(25).List();
我要的是,我得到25入口處從我的名單(名單有402入口)。 這次通話後,我從來沒有25入口。有人知道爲什麼嗎?
我有這樣的代碼NHibernate的取跳過不採取儘可能多的,因爲它應該
var items = query.Skip(0).Take(25).List();
我要的是,我得到25入口處從我的名單(名單有402入口)。 這次通話後,我從來沒有25入口。有人知道爲什麼嗎?
一個.Take()
和.Skip()
是在DB端(如SQL Server上 - Implement paging (skip/take) functionality with this query)轉換成像這樣
SELECT col1, col2, ...
FROM ...
WHERE ...
ORDER BY
OFFSET 0 ROWS -- skip 0 rows
FETCH NEXT 25 ROWS ONLY; -- take 25 rows
這將始終工作,如果我們query
約一個表(沒有JOIN )。即許多行會導致在結果列表中
,許多C#項目,但如果查詢將使用JOIN,加入一些收集,我們仍然會得到DB側25行..
parent_id, child_id
1, 10
1, 11
2, 12
2, 13
...
-- 25 rows
但是這些會導致更少的根實體(請參閱父級1和2有4行)。這些將,轉化過程中,可以簡單地收集轉化的父母只是用很少的項目非常不確定的量
我的建議是:
需要分頁時不加入收藏。決不。始終頁面上的聯接與
star schema
(多到一個)
感謝這個信息。 – NiZelooer
祝你好運NHibernate,先生;) –
我真的不明白你最後一次報價關於不分頁時加入集合。在我的應用程序中,我正在使用連接('JoinQueryOver')進行分頁,並沒有看到任何問題。其他人很棒。 +1 –