Как добавить несколько объединений (выборок) в объединенную таблицу с помощью nhibernate и LINQ? - PullRequest
3 голосов
/ 02 января 2011

у меня есть эти таблицы / сущности

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 , но я не могу понять, как добавить дополнительное объединение EAGER к VacationRequest таблица.

Если я добавляю Fetch в конце, это относится к VacationRequestDate таблице
Если я добавлю ThenFetch в конце, это будет означать RequestStatus table

Я не могу найти API, который будет ссылаться на таблицу VacationRequest в качестве контрольной точки.

как бы вы добавили несколько объединений в объединенную таблицу, используя nhibernate LINQ?

1 Ответ

1 голос
/ 02 января 2011

Хотя это и не является оптимальным на 100% из-за дополнительного объединения, это работает:

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

Другие методы запросов (HQL, Criteria, не уверены в QueryOver) не имеют этого ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...