我想在linq中将这样的结果集查询到实体;LINQ to Entities Contains Case In-Sensitive Searching
var categoriesList = _catRepo.GetAllCategories();
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("for"));
但是,我没有得到任何结果监守的CategoryName
在数据库For(Upper Case)
。我也检查了sql server排序规则,它设置为_CI_AS。我不知道如何使用包含过滤大小写不敏感的字符串? 我想基本上如果有人类型喜欢;
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("for"));
OR
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("For"));
结果应该是一样的
这是回答这个问题吗? http://stackoverflow.com/questions/3360772/linq-contains-case-insensitive – 2013-03-12 13:46:51
它does not't为我工作 – 2013-03-12 13:48:25
我认为,通常适用于你说的排序规则。你确定'categoriesList'是一个数据库查询,而不是已经在内存列表中查询(在这种情况下,你的表达式不会被转换为SQL)。另外,如果你在那个时候跟踪db查询,那么生成的SQL是什么? – 2013-03-12 13:48:49