我有这些表/实体
VacationRequestDate 表格,其中 VacationRequestId 字段与 VacationRequest 表格相关联 VacationRequest 包含 PersonId 和 RequestStatusId 与人>相关联的字段分别是strong>和 RequestStatus 。
到目前为止我有这个问题:
IEnumerable<VacationRequestDate> dates = Session.Query<VacationRequestDate>().Fetch(r => r.VacationRequest).ThenFetch(p=>p.RequestStatus).ToList();
这很好用并加入 VacationRequest ,然后 VacationRequest 加入 RequestStatus ,但我无法弄清楚如何添加额外的EAGER加入 VacationRequest 表。
如果我在结尾添加抓取,则会引用 VacationRequestDate 表格 如果我在结尾添加 ThenFetch ,则会引用 RequestStatus 表
我找不到任何会将VacationRequest表作为参考点的api。
如何使用nhibernate LINQ为连接表添加多个连接?
答案 0 :(得分:1)
虽然因为额外的连接而不是100%最佳,但这有效:
Session.Query<VacationRequestDate>()
.Fetch(r => r.VacationRequest).ThenFetch(p => p.RequestStatus)
.Fetch(r => r.VacationRequest).ThenFetch(p => p.Person)
其他查询方法(HQL,Criteria,不确定QueryOver)没有此限制。