为什么我不能在我的搜索查询中一起使用like和equal运算符

时间:2011-08-27 07:15:32

标签: nhibernate fluent-nhibernate

我想要做的是通过三列简单搜索:名字,姓氏和电子邮件

在我的情况下,我需要两个第一列(名字和姓氏)可由类似运营商搜索,最后一个(电子邮件)由同等运营商搜索

但我得到的错误无法解释我应该做什么:

Screenshot with no freehand circles or arrows.

在普通的SQL中它应该是这样的:

Select *
From Member
Where FirstName like '%value%' Or LastName like '%value%' Or Email='value'

但是我做错了什么?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用

.Where(Restrictions.Disjunction()
     .Add(Restrictions.On(x => x.FirstName).IsLike(keyWord))
     .Add(Restrictions.On(x => x.LastName).IsLike(keyWord))
     .Add(Restrictions.On(x => x.FirstName).IsLike(keyWord))
     .Add(Restrictions.Eq(x.Email,keyWord))
 )

我希望它有用