我在db表中使用contains子句进行搜索。但是如果数据具有大写字母,并且如果我用较小的情况搜索,则它找不到我搜索的内容。但是当我用大写字母搜索时它可以找到。小写搜索也是如此。
这是我的代码:
using (var context = new eTicaretEntity())
{
return context.GetActiveProducts().Where(p => p.Name.Contains(name)).ToList();
}
你可以看到我的意思是这些照片。
它可以用大写字母找到。
无法找到小写字母的数据。
答案 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();
这将解决您的问题。