我有这些表/实体
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/