您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

LINQ to Entities区分大小写的比较

LINQ to Entities区分大小写的比较

那是因为您使用的是 LINQ To Entities ,最终将Lambda表达式转换为sql语句。这意味着区分大小写 您的sql Server,认情况下,sql Server具有 排序规则,并且不区分大小写。

使用 ObjectQuery.ToTraceString 查看实际上已提交给sql Server的生成SQL查询揭示了一个奥秘:

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

创建 LINQ to Entities 查询时, LINQ to Entities 利用LINQ解析器开始处理查询,并将其转换为LINQ表达式树。然后将LINQ表达式树传递给 API,后者将表达式树转换为命令树。然后将其发送到存储提供程序(例如sqlClient),后者将命令树转换为本地数据库命令文本。查询获取的数据存储执行,结果被物化实体对象对象服务 。两者之间未考虑逻辑区分大小写。因此,无论您将谓词放在哪种情况下,除非您更改该列的sql Server排序规则,否则sql Server始终将其视为相同。

其他 2022/1/1 18:15:51 有366人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶