1

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

这是我的代码:

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

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

它可以用大写字母查找。

它可以找到

它找不到带有小写字母的数据。 在此处输入图像描述

4

2 回答 2

3

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

using (var context = new eTicaretEntity())
{
    return context.GetActiveProducts()
                  .Where(p => p.Name.ToUpper().Contains(name.ToUpper()))
                  .ToList();
}
于 2013-01-11T19:16:20.517 回答
1

试试这个:

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

这将解决您的问题。

于 2013-01-11T19:20:01.347 回答