2009-08-27 5 views
2

Я только пытаюсь представить основную часть проблемы, потому что вся ситуация намного сложнее - я не в состоянии достичь следующих с DetachedCriteriaNhibernate DetachedCriteria Left Outer Регистрация на подзапроса

SELECT * 
FROM User 
LEFT OUTER JOIN GroupItem 
ON User.ID = GroupItem.UserID 
AND _groupItemRestrictions_ 

Там может быть несколько GroupDefinitions, Пользователь может принадлежать нескольким 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?

Спасибо!

ответ

2

Кажется, что нет никакого способа, чтобы задать такой запрос с DetachedCriteria пока нет, но есть с HQL используя 'с' пункта:

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

http://www.mail-archive.com/[email protected]/msg08451.html

UPDATE:

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

Теперь эта функция реализована. Благодаря команде NH :)

Смежные вопросы