大家好 NHibernate 大师!
鉴于这两个类:
public class User {
long Id;
string Name;
}
public class Project {
long Id;
User Owner;
IList<User> Managers;
...
}
我想做一个查询使用 QueryOver (不使用标准“魔法字符串”别名),获取所有将 user1 作为所有者的项目 或 作为经理之一。
我知道如何分开:
但是 不知道析取词怎么写 .
如果有人有想法,那会对我有很大帮助。
提前致谢,
克里斯
最佳答案
就像是:-
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)
编辑2 将内部更改为左侧使用
.JoinAlias(j => j.Managers, () => manager).left
关于nhibernate - 限制使用 NHibernate QueryOver 进行析取收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9645264/