gpt4 book ai didi

c# - == 默认情况下在 c# linq 中不区分大小写

转载 作者:行者123 更新时间:2023-11-30 13:25:42 24 4
gpt4 key购买 nike

我不明白为什么:

在数据库中,我在 Members 表中记录了 Name = "Bob"

var a = await repository.Members.FirstOrDefaultAsync(x => x.Name == "BOB"); //is true (Entity Framework Core)

var c = repository.Members.FirstOrDefault(x => x.Name == "BOB"); //is true (LINQ)

var b = "Bob" == "BOB"; //is false

最佳答案

该问题与 LINQ 无关。 LINQ 只是一种抽象机制,允许您使用相同的语法查询不同的数据源。如果您默认使用 MSSQL,它将具有不区分大小写的 SQL_Latin1_General_CP1_CI_AS 排序规则(请注意名称中的 CI)。因此,当您的 LINQ 查询被转换为 SQL(select * from Members where Name = 'BOB')并运行时,它将返回结果。所以基本上你可能需要 change the collation如果您想使用它执行区分大小写的查找,请将您的 SQL Server 数据库更改为区分大小写的数据库。

关于c# - == 默认情况下在 c# linq 中不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41974299/

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