2012-07-25 64 views
0

我有下列对象: A - >乙 - >的IList - > d - >的IList等..NHibernate的避免N + 1与深能级

如果我取A的列表中,NHibernate的确实B上的内连接。没关系。 但是C被提取的N + 1问题。

我尝试这样做:

var query = session.Query<A>() 
    .Fetch(x => x.B) 
    .ThenFetchMany(x => x.C) 
    .Distinct(); 

但后来他做了117获取的,而不是5之前。例如,E现在不是急于加载。或者C是B的十倍而不是一次。

这种情况的最佳方法是什么?

在此先感谢

回答