Expression.Like问题与特殊字符

时间:2011-06-14 12:15:15

标签: asp.net-mvc nhibernate fluent-nhibernate criteria

  

可能重复:
  How do I escape a LIKE clause using NHibernate Criteria?

我正在尝试使用nHibernate Criteria Query从SQL Server 2005数据库中获取数据。我获取Name fireld的textBox是Free Text,没有任何特殊字符验证。

string Name = "%%%";
ICriteria criteria = Session.CreateCriteria(typeof(Employee))
criteria.Add(Expression.Like("Name", "%"+Name+"%"));
return criteria.List<Employee>();

上面的Criteria返回给我所有记录,但实际上它应该返回null(没有任何带有“%%%”的记录。我认为这是因为创建的SQL查询将是这样的:

Select * from Employee where Name Like %%%%% 

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

尝试criteria.Add(Restrictions.Like("Code", itemCode, MatchMode.Anywhere));Restrictions.InsensitiveLike进行不敏感搜索