gpt4 book ai didi

c# - 有没有一种简单的方法来处理 linq-to-entities 查询中的重音符号

转载 作者:行者123 更新时间:2023-12-02 20:12:23 25 4
gpt4 key购买 nike

假设我有一个可汗数据库。我可以使用此 Entity Framework 代码按名称获取可汗

Khan khan=context.Khans.Where(x=>x.Name.Contains("Öge")).Single();

问题在于,实际上用户会键入“Oge”而不是“Öge”,并且不会获得任何匹配项。有没有一种简单的方法来处理这个问题,以便带重音符号的字母在搜索时始终算作不带重音符号的字母?

我找到了this SO question它有一个 Compare 方法的解决方案,但我似乎无法将其用于数据库查询:

string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);

最佳答案

您可能需要将数据库表中字段的排序规则更改为不区分大小写和重音,以便 LINQ 能够使用 .Contains() 等标准方法:

ALTER TABLE Khans ALTER COLUMN Name [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AI

排序规则名称末尾的“CI”表示“不区分大小写”,“AI”表示“不区分重音”。

关于c# - 有没有一种简单的方法来处理 linq-to-entities 查询中的重音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39537218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com