我一直在阅读并四处寻找黑白的答案。
让我们谈谈熟悉的
Customer
和Order
问题。假设我加载了 100 个订单,每个订单都链接到一个且只有一个客户。
使用 Fluent NHibernate,我将使用References()
我的链接Order
来Customer
定义我的Not.LazyLoad()
和Fetch.Join()
。
现在我在假设,NHibernate 可以简单地加入这两个表,并且很容易水合实体。但是,在我的测试中,我总是看到 N+1 个查询(实际上可能只有唯一的 ID)。我可以分享我的代码和表格,但它可能会让你感到厌烦,所以
- 是否有可能克服 Order->Customer 的 N+1 (一个->一个或者更确切地说是很多->一个)?或者我必须使用批处理或 Criteria API?
- 如果可能的话,你能指点我一个 Fluent NHibernate 的例子吗?