Linq对Sql案例不敏感的平等

zsh*_*arp 5 linq-to-sql

我正在阅读关于Linq到Sql字符串比较的矛盾解释.

当我执行以下操作时:

  from p in db.People 
  where p.UserName=username
  select p
Run Code Online (Sandbox Code Playgroud)

用户名="约翰"

我得到了正确的不区分大小写的结果.Linq是默认执行此操作还是在SQL数据库中发生这种情况?

Jef*_*tin 4

我认为根据 db 变量指向的内容以及实际执行比较的位置,您会得到相互矛盾的结果。如果可以,linq 将构建查询并将其发送到 SQL 服务器。看来你可以通过调用强制不区分大小写

where p.UserName.ToLower()=username.ToLower()
Run Code Online (Sandbox Code Playgroud)