Я только попытаюсь представить основную часть проблемы, потому что вся ситуация намного сложнее - я не могу добиться следующего с DetachedCriteria
SELECT *
FROM User
LEFT OUTER JOIN GroupItem
ON User.ID = GroupItem.UserID
AND _groupItemRestrictions_
Может быть несколько определений GroupDefinition. Пользователь может принадлежать нескольким элементам GroupItems, каждый из которых принадлежит своему собственному GroupDefinition. Из-за какой-то сложной причины, связанной с подкачкой / сортировкой и (многоуровневым) поведением группы, я не могу добиться соответствующего поведения подкачки с помощью этого запроса:
SELECT *
FROM User
LEFT OUTER JOIN GroupItem
ON User.ID = GroupItem.UserID
WHERE _groupItemRestrictions_
Запрос, аналогичный второму, создается следующим образом:
var criteria = DetachedCriteria.For<User>()
...
GroupItem groupItem = null;
criteria.CreateAlias(() => groupItemAlias, () => groupItem,
JoinType.LeftOuterJoin);
criteria.Add(Restrictions.Or(...));
...
Можно ли создать первый запрос с DetachedCriteria?
Спасибо!