LINQ to Entities 大小写敏感比较详解
以下LINQ to Entities查询:
<code class="language-c#">Thingies.First(t => t.Name == "ThingamaBob");</code>
由于LINQ to Entities 将lambda表达式转换为SQL语句,因此不会执行大小写敏感的比较。SQL Server默认使用的SQL_Latin1_General_CP1_CI_AS排序规则不区分大小写。
服务器端解决方案
要启用大小写敏感比较,请使用以下SQL命令将Thingies表中Name列的排序规则更改为COLLATE Latin1_General_CS_AS:
<code class="language-sql">ALTER TABLE Thingies ALTER COLUMN Name VARCHAR(25) COLLATE Latin1_General_CS_AS</code>
客户端解决方案
或者,您可以使用LINQ to Objects执行大小写敏感比较,但这效率较低:
<code class="language-c#">Thingies.Where(t => t.Name == "ThingamaBob") .AsEnumerable() .First(t => t.Name == "ThingamaBob");</code>
以上是如何使用 LINQ to Entities 执行区分大小写的比较?的详细内容。更多信息请关注PHP中文网其他相关文章!