Entity Framework包含子句未找到

时间:2013-01-11 19:13:11

标签: asp.net entity-framework c#-4.0 contains

我在db表中使用contains子句进行搜索。但是如果数据具有大写字母,并且如果我用较小的情况搜索,则它找不到我搜索的内容。但是当我用大写字母搜索时它可以找到。小写搜索也是如此。

这是我的代码:

 using (var context = new eTicaretEntity())
  {
    return context.GetActiveProducts().Where(p => p.Name.Contains(name)).ToList();
  }

你可以看到我的意思是这些照片。

它可以用大写字母找到。

It can find

无法找到小写字母的数据。 enter image description here

2 个答案:

答案 0 :(得分:3)

如果您的数据库排序规则区分大小写,那么您必须将比较的两边都转换为大写(或更低)的情况。

using (var context = new eTicaretEntity())
{
    return context.GetActiveProducts()
                  .Where(p => p.Name.ToUpper().Contains(name.ToUpper()))
                  .ToList();
}

答案 1 :(得分:1)

请改为尝试:

return context.GetActiveProducts().Where(p => 
          p.Name.IndexOf(name,StringComparison.OrdinalIgnoreCase) >= 0).ToList();

这将解决您的问题。