我有这些表/实体

VacationRequestDate表具有一个VacationRequestId字段,该字段与VacationRequest表链接
VacationRequest的PersonId和RequestStatusId字段分别与Person和RequestStatus链接。

到目前为止,我有此查询:

IEnumerable<VacationRequestDate> dates = Session.Query<VacationRequestDate>().Fetch(r => r.VacationRequest).ThenFetch(p=>p.RequestStatus).ToList();


这工作正常,并与VacationRequest连接,然后VacationRequest与RequestStatus连接,但是我不知道如何向VacationRequest表中添加其他EAGER连接。

如果我在末尾添加Fetch,则它引用VacationRequestDate表
如果我在末尾添加了ThenFetch,则它引用RequestStatus表

我找不到任何将VacationRequest表作为参考点的api。

如何使用nhibernate LINQ将多个联接添加到联接表中?

最佳答案

尽管由于额外的联接而并非100%最佳,但这可以:

Session.Query<VacationRequestDate>()
       .Fetch(r => r.VacationRequest).ThenFetch(p => p.RequestStatus)
       .Fetch(r => r.VacationRequest).ThenFetch(p => p.Person)


其他查询方法(HQL,条件,不确定QueryOver)没有此限制。

关于c# - 如何使用nhibernate和LINQ将多个联接(提取)添加到联接表中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4578547/

10-13 06:17