如何使用 Criteria API 加载子元素和子集合。我已经阅读了几乎可以在 google 上找到的所有链接,但不会加载子元素。
这是我的设置
订单有 OrderItems 并且在我的 DTO 中指定
在订单的流畅映射功能中,我有以下值得注意的行:
LazyLoad();
this.HasMany<OrderItems>(x => x.OrderItems).KeyColumns.Add(new[] { "OrderId"});
在我的存储库类中,我从标准类创建查询并检索一个列表:
DetachedCriteria query = criteria.CreateCriteria();
IList<Orders> myOrders =
query.GetExecutableCriteria(UnitOfWork.CurrentSession).List<Orders>();
当我尝试访问 myOrders.OrderItems 时,它们是空的(它们肯定在我的数据库中)。我假设映射函数中的 LazyLoad() 调用将启用此功能...
所以我试着像这样急切地加载:
query.SetFetchMode("Orders.OrderItems", NHibernate.FetchMode.Eager)
但这也不起作用。
我哪里错了?