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 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);