我读到过使用 ToUpper 和 ToLower 来执行不区分大小写的字符串比较是不明智的,但是在 LINQ-to-SQL 方面我看不到其他选择。String 的 ignoreCase 和 CompareOptions 参数。LINQ-to-SQL 忽略比较(如果使用区分大小写的数据库,即使请求区分大小写的比较,也会得到区分大小写的比较)。ToLower 或者 ToUpper 是最好的选择吗?一个比另一个好吗?我以为我在哪里读到过 ToUpper 更好,但我不知道这是否适用于这里。(我做了很多代码检查,每个人都在使用 ToLower。)
Dim s = From row In context.Table Where String.Compare(row.Name, "test", StringComparison.InvariantCultureIgnoreCase) = 0
这转换为一个简单地比较行的 SQL 查询。名称为“ TEST”,并且不会在区分大小写的数据库上返回“ TEST”和“ TEST”。