在我的查询中,一个人可以有多个职位。
人 - >工作[IdJob]
需要为字段的经理位置进行投影,为其他字段的经理位置进行另一次投影
不使用子查询。可以吗?
例如:
.SelectList(Sl => sl .SelectGroup(S => s.Name).WithAlias(()=> rel。个人) Where(()=> Person.idJob = 1)
/ * Funcionaraia好像,在这里我可以设计一个董事会成员到管理员类字段投射* /
.SelectGroup(S => s.Name).WithAlias(()=> rel.Administrator)
其中(()=> Person.idJob = 2)
/ *相同的经理* /
.SelectGroup(S => s.Name).WithAlias(()=> rel.Managers)
答案 0 :(得分:0)
var personName = Projections.Property<Person>(p => p.Name);
var none = Projections.Constant(null);
session.QueryOver<Person>()
.Select(
Projections.Conditional(Expression.Where<Person>(p => p.Job == Job.Manager), personName, none).WithAlias(() => rel.Manager),
Projections.Conditional(Expression.Where<Person>(p => p.Job == Job.Administrator), personName, none).WithAlias(() => rel.Administrator),
Projections.Conditional(Expression.Where<Person>(p => p.Job == Job.Employee), personName, none).WithAlias(() => rel.Individual)
);