我试过这个
incidentSubquery.WithSubquery.WhereProperty(x => x.Id).In (witnessTypesSubquery).
WithSubquery.WhereProperty(x => x.Id).NotIn(witnessTypesSubquery);
但是两个子查询之间的运算符是And运算符,我怎样才能创建它或运算符而不是和。
答案 0 :(得分:3)
一种方法可能是:
incidentSubquery.Where
(
Restrictions.Disjunction()
.Add(Subqueries.WhereProperty<MyEntity>(x => x.Id).In(witnessTypesSubquery))
.Add(Subqueries.WhereProperty<MyEntity>(x => x.Id).NotIn(witnessTypesSubquery))
);
我们可以使用Restrictions.Disjunction().Add(...).Add(...)
尽可能多地加入OR语句。
简化版可以使用Restrictions.Or(A, B)
(只有两个语句)