我有一個相當深的對象圖(5-6節點),當我遍歷它的一部分NHProf告訴我我有一個「選擇N + 1」的問題(我做)。防止流利NHibernate的選擇n + 1
這兩種方案我所知道的是
- 渴望負載孩子
- 掰開我的對象圖(和貪婪加載)
我真的不希望做任何(雖然我可能隨着它的增長,將圖分開)
現在......
是否有可能告訴NHibernate(使用FluentNHibernate)每當我嘗試訪問子進程時,一次加載它們,而不是select-n + 1-ing,因爲我迭代了它們?
我還得到了「無限結果集」,這大概是同樣的問題(或者說,如果可能,將通過上述解決方案來解決)。
每個孩子集合(在整個圖中)將只有大約20個成員,但20^5是很多,所以我不想急於加載一切,當我得到的根,但只是得到所有的兒童收集,只要我靠近它。
編輯:一個事後....如果我想介紹分頁,當我想要呈現兒童?我是否需要在這裏打破我的對象圖,還是有一些潛行我可以用來解決所有這些問題?
」這聽起來對你來說,你想追求的是使用你的域模型的方法,而不是創建一個特定的nhibernate查詢來處理這種情況。「肯定。我想要的最後一件事是具體的查詢。我檢查了這些東西,ta – 2009-02-24 13:15:12