我在math上不好,但是我想知道笛卡儿的产品是什么。 这是我的情况(简化): public class Project{ public IList<Partner> Partners{get;set;} } public class Partner{ public IList<PartnerCosts> Costs{get;set;} public IList<Address> Addresses{get;set;} } public class PartnerCosts{ public Money Total{get;set;} } public class Money{ public decimal Amount{get;set;} public int CurrencyCode{get;set;} } public class Address{ public string Street{get;set;} } 我的目标是有效地加载整个项目。 问题当然是: 如果我试图加载合作伙伴和他们的成本,查询返回gazillion行 如果我懒加载Partner.Costs,数据库获取请求垃圾邮件(这是比第一种方法快一点) 在我看来,常见的解决方法是使用MultiQueries,但我只是不明白。 所以我希望通过这个确切的例子来学习。 如何有效地加载整个项目? Ps我正在使用NHibernate 3.0.0。 请不要用hql或stringbuild立的标准api方法发布答案。