【发布时间】:2015-12-08 02:42:59
【问题描述】:
在查询 nhibernate 时,我看到了一些奇怪的行为
当我写这样的查询时
Repository.QueryOver<Entity>()
.Fetch(x => x.Child1).Eager
.Fetch(x => x.child2).Eager
它会急切地抓取 child1 和 child2 实体,但是 child1 和 child2 的孙子不会延迟加载。我对如何实现这一点有点困惑。
在我的 nhibernate 映射中,它似乎对孙子的懒惰或急切没有影响,我需要至少急切加载一些实体以避免 N+1 查询问题。
我也想知道如何在我的原始实体下急切地加载孙子实体。
感谢任何帮助或想法!
【问题讨论】:
-
要走的路是batch fetching,这里是fluent
-
我需要在映射的哪个级别声明批处理?那么是否需要在查询 API 中做任何事情来确保它使用批次?抱歉,Nhibernate 可能在文档中对此并不清楚
-
我把所有的信息都放到了答案中。希望对您有所帮助
标签: nhibernate fluent-nhibernate lazy-loading eager-loading fluent-nhibernate-mapping