1
我有一些Linq NHibernate查詢的麻煩。NHibernate集合急切加載需要計數
我需要獲得一批憑證及其詳細信息。由於我需要迭代它們,我想在一次執行中獲取所有信息。
我的查詢是以下之一:
return this.Session.Query<VouchersToIntegrate>()
.Take(query.BatchSize)
.Fetch(x => x.VoucherLines)
.ToList();
哪裏VouchersToIntegrate是憑證和VoucherLines傳票的線。
現在batchSize被設置爲50.000,但是當我返回所有的對象時,我只得到23XXX。這是因爲我猜框架在從數據庫(客戶端)獲取所有對象後在內部執行一個獨特的操作。有沒有其他的方法來獲得50.000對象與SQL服務器端獨特的過濾器?
謝謝
使用NHibernate迭代惰性加載的屬性不會導致n + 1加載問題,如果你已經正確地映射了你的實體。參見[更深入的解釋](/ a/36070727/1178314)。所以如果你想急於加載,因爲你有n + 1加載問題,你應該閱讀它。 –