我在试着匹配元音和辅音搜索。
例如,我们将搜索这个单词->>“我是一名计算机工程师”。实体框架包含的方法应该是匹配的,那些都是词;
“我是计算机工程师”“我是计算机工程师”或任何元音或辅音词。
例如->>任何单词“şiğ”。
必须匹配->>
"uocsİg“或"UOCSIG”等。
这是我的代码
var Customers = _unitOfWork.Customers.GetAll().Where(x => x.nameSurname.ToLower().Contains(customer.nameSurname.ToLower())).ToList();
发布于 2019-12-07 23:52:52
这仅取决于数据库的排序规则设置。
口音敏感:
区分重音字符和非重音字符。例如,"a“不等于"ấ”。如果未选中此选项,则排序规则对重音不敏感.也就是说,Server认为字母的重音版本和非重音版本在排序方面是相同的。可以通过指定_AI显式地选择重音不敏感。
区分大小写:
区分大写字母和小写字母。如果选择此选项,则小写字母在其大写版本之前排序。如果未选中此选项,则排序规则不区分大小写。也就是说,对于排序目的,Server认为大写和小写字母版本是相同的。可以通过指定_CI显式地选择不区分大小写。
由于EF被转换为实际的查询,并且没有其他SQL方法来忽略重音,而在上层则是等效的,所以应该在数据库层中应用任何组合。
注意性能问题。包含,以etc开头,告诉下面的数据库执行顺序扫描,即使是索引列。因此,在适用的情况下,首先要小心地用其他方法过滤大表。
https://stackoverflow.com/questions/59231248
复制相似问题