如何使用nhibernate和LINQ向连接表添加多个连接(Fetches)?

时间:2011-01-02 13:24:43

标签: c# linq nhibernate fluent-nhibernate

我有这些表/实体

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为连接表添加多个连接?

1 个答案:

答案 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)没有此限制。