搜索文本包含QueryOver

我正在尝试这样做:

var list = Session.QueryOver() .Where(x => x.LastName.Contains(searchText)) .List(); 

但我收到此错误: 无法识别的方法调用:System.String:Boolean包含(System.String)

你有好主意吗 ?

更新:

 public class Person { public virtual string FirstName { get; set; } public virtual string LastName { get; set; } } 

NHibernate没有与此链接中提到的直接C#等价物http://nhibernate.info/blog/2009/12/17/queryover-in-nh-3-0.html

附加限制

一些SQL运算符/函数在C#中没有直接的等价物。 (例如,SQL的名称如’%anna%’)。 这些运算符在Restrictions类中具有QueryOver的重载,因此您可以编写:

.Where(Restrictions.On(c => c.Name).IsLike(“%anna%”))

还有一个内联语法来避免类型的限定:

.WhereRestrictionOn(c => c.Name).IsLike(“%anna%”)

看起来像QueryOver不支持Contains方法。 您可以尝试使用IsLike限制:

nhibernate queryover LIKE with expression trees
NHibernate 3.0搜索子字符串
查询和(x像’a’或y喜欢’a’)

 WhereRestrictionOn(x => x.FName).IsLike("a%") use like this 
 var data = session.QueryOver() .JoinQueryOver(x => x.Empsals) .WhereRestrictionOn(x => x.FName).IsLike("a%") .List();