如何在Expression.Or中设置多于2个表达式

时间:2009-01-12 00:51:09

标签: nhibernate criteria expression icriteria

我想创建一个超过3-4个Expression.Or的查询?但Expression.Or只是让我在其中添加两个表达式。

if (!string.IsNullOrEmpty(keyword))
                query
                    .Add(Expression.Or(
                             Expression.Like("Name", keyword, MatchMode.Anywhere),
                             Expression.Like("LastName", keyword, MatchMode.Anywhere)))
                    .Add(Expression.Or(
                             Expression.Like("Email1", keyword, MatchMode.Anywhere),
                             Expression.Like("Email2", keyword, MatchMode.Anywhere)));

上面的代码会生成“%this%this或LastName like%this this AND Email1就像%this%和Email2就像%this。

提前致谢。

2 个答案:

答案 0 :(得分:8)

使用Disjunction代替Or。

答案 1 :(得分:2)

您也可以使用||而不是Or()或Disjunction()。