我有以下物品: A - > B - > IList - > D - > IList等等..
如果我获取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的十倍而不是一次。
这种情况的最佳方法是什么?
提前致谢
答案 0 :(得分:0)
看看Ayende的文章Solving the Select N+1 Problem,开始使用NHibernate Profiler,它可以检测到N + 1个问题Alert: Select N+1