LINQ 在哪里匹配确切字符串

本文关键字:字符串 在哪里 LINQ | 更新日期: 2023-09-27 18:21:51

var demo=context.UserDetails.SingleOrDefault(x=>x.UserName==UserName && x.Password==Password);

我出去放即使情况不匹配

例如:用户名=演示 密码 = 测试以用户 ID 身份登录 = 1。

用户名=dEmo 密码=测试 以用户 ID 身份登录=1 请帮助我 使其区分大小写

LINQ 在哪里匹配确切字符串

这是因为您使用的是 LINQ To 实体,它最终将您的 Lambda 表达式转换为 SQL 语句。这意味着区分大小写受 SQL Server 的支配,默认情况下,SQL Server 具有SQL_Latin1_General_CP1_CI_AS排序规则,并且不区分大小写。

使用 ObjectQuery.ToTraceString 查看实际提交给 SQL Server 的生成的 SQL 查询揭示了其中的奥秘:

string sqlQuery = ((ObjectQuery)context.Thingies
        .Where(t => t.Name == "ThingamaBob")).ToTraceString();

你的例子——

var demo=((ObjectQuery)context.UserDetails.SingleOrDefault(x=>x.UserName==UserName && x.Password==Password)).ToTraceString();

请点击此处了解更多详情

使用等于;

 var demo = context.UserDetails.SingleOrDefault(x => x.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase) && x.Password.Equals(Password, StringComparison.CurrentCulture);