大家都是NHibernate大师!
鉴于这两个类:
public class User {
long Id;
string Name;
}
public class Project {
long Id;
User Owner;
IList<User> Managers;
...
}
我想查询使用QueryOver (不使用条件“魔术字符串”别名)来获取所有项目,其中user1为所有者 OR 作为其中一个管理者。
我知道如何分开:
但是我不知道怎么写分离。
如果有人有想法,那对我很有用。
提前致谢,
克里斯
答案 0 :(得分:2)
类似的东西: -
User manager = null;
var query = session
.QueryOver<Project>()
.JoinAlias(j => j.Managers, () => manager)
.Where(w => manager.Name == user1 || w.Owner == user1)
.List<Project>();
修改以将过滤器从Name
更改为Id
(正如OP指出的那样): -
.Where(w=>manager.Id == user1.Id || w.Owner.Id == user1.Id)
edit2 更改从内到左的使用
.JoinAlias(j => j.Managers, () => manager).left