Nhibernate DetachedCriteria Left Outer Присоединиться к подзапросу - PullRequest
2 голосов
/ 27 августа 2009

Я только попытаюсь представить основную часть проблемы, потому что вся ситуация намного сложнее - я не могу добиться следующего с 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?

Спасибо!

1 Ответ

2 голосов
/ 27 августа 2009

Похоже, что пока нет способа задать такой запрос с DetachedCriteria, но в HQL есть предложение with:

http://fabiomaulo.blogspot.com/2009/05/nhibernate-210-hql-with-clause.html

http://www.mail-archive.com/nhusers@googlegroups.com/msg08451.html

UPDATE:

https://nhibernate.jira.com/browse/NH-1946

Функция реализована сейчас. Спасибо команде NH:)

...