【问题标题】:How do I add multiple joins (Fetches) to a joined table using nhibernate and LINQ?如何使用 nhibernate 和 LINQ 将多个连接 (Fetches) 添加到连接表?
【发布时间】:2011-01-02 13:24:42
【问题描述】:

我有这些表/实体

VacationRequestDate 表,其中有一个与 VacationRequest 表链接的 VacationRequestId 字段
VacationRequest PersonIdRequestStatusId 字段与 Person 和 RequestStatus 分别。

到目前为止我有这个查询:

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

这工作正常并加入 VacationRequest 然后 VacationRequest 加入 RequestStatus 但我不知道如何添加额外的 EAGER加入 VationRequest 表。

如果我在末尾添加 Fetch,它指的是 VacationRequestDate
如果我在末尾添加 ThenFetch,它指的是 RequestStatus

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

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

【问题讨论】:

  • @Jani - 我使用的是 LINQ API(不是 Criteria API)

标签: c# linq nhibernate fluent-nhibernate


【解决方案1】:

虽然由于额外的连接而不是 100% 最佳,但这是可行的:

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

其他查询方法(HQL、Criteria、不确定QueryOver)没有这个限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2013-07-25
    • 1970-01-01
    相关资源
    最近更新 更多