Il est difficile de répondre sans connaître vos entités, applications, la technologie utilisée (API ICreteria, QueryOver, Linq).
Mais je peux suggérer cette solution à l'aide QueryOver:
AppUser ownerAlias = null;
WeeklyTask taskAlias = null;
var result = Session.QueryOver(() => taskAlias)
.JoinAlias(x => x.TaskOwner,
() => ownerAlias,
NHibernate.SqlCommand.JoinType.RightOuterJoin,
Restrictions.Where(() => taskAlias.Status == 1))
.SelectList(list => list
.SelectGroup(x => ownerAlias.Id)
.SelectCount(x => x.Id))
.List<object[]>();
ou ceci:
var result = Session.QueryOver<WeeklyTask>()
.Where(x => x.Status == 1)
.Right.JoinQueryOver(x => x.TaskOwner)
.SelectList(list => list
.SelectGroup(x => x.TaskOwner.Id)
.SelectCount(x => x.Id))
.List<object[]>();
S'il vous plaît noter que dans cette approche votre must entité WeeklyTask
contient mappée référence à une entité AppUser
.
merci beaucoup, le premier QueryOver a parfaitement fonctionné –