NHibernate Linq提供程序中的Fetch vs FetchMany

NHibernate Linq提供程序中的Fetch vs FetchMany,linq,nhibernate,fetch,eager-loading,Linq,Nhibernate,Fetch,Eager Loading,可以使用Fetch和FetchMany来完成NHibernate即时加载,如Mike Hadlow的博客中所述 这两种方法之间有什么区别,在什么情况下会使用它们?Fetch应用于参考,而FetchMany应用于收集 这一点尤其重要,因为只有FetchMany可以与然后FetchMany组合以获取“孙子”集合 例如: session.Query<User>() .FetchMany(u => u.Orders) .ThenFetchMany(o =&g

可以使用
Fetch
FetchMany
来完成NHibernate即时加载,如Mike Hadlow的博客中所述


这两种方法之间有什么区别,在什么情况下会使用它们?

Fetch
应用于参考,而
FetchMany
应用于收集

这一点尤其重要,因为只有
FetchMany
可以与
然后FetchMany
组合以获取“孙子”集合

例如:

session.Query<User>()
       .FetchMany(u => u.Orders)
       .ThenFetchMany(o => o.OrderItems)
session.Query()
.FetchMany(u=>u.Orders)
.ThenFetchMany(o=>o.OrderItems)

如果您不打算以后调用Fetch(),那么在集合上使用Fetch()是否有问题?@Diego Mijelshon因为Fetch和Fetch都有很多工作,有什么区别吗?@hardywang:它们可以链接起来获取更多级别。只需看看方法签名。