LINQ to 实体和区分大小写:综合指南
LINQ to Entities 查询中的大小写敏感性很大程度上受底层数据库的影响。 例如,SQL Server 默认采用不区分大小写的排序规则。 这意味着像 t.Name == "ThingamaBob"
这样的查询将忽略大小写差异。
数据库级解决方案(推荐)
区分大小写比较最有效、最可靠的方法是调整数据库列的排序规则。 在 SQL Server 中,这涉及使用 ALTER TABLE
命令。例如:ALTER TABLE Thingies ALTER COLUMN Name VARCHAR(25) COLLATE Latin1_General_CS_AS
强制 Name
列区分大小写。
客户端方法(替代)
如果修改数据库排序规则不可行,客户端解决方法会利用 LINQ to Objects 进行二次比较:
<code class="language-csharp">Thingies.Where(t => t.Name == "ThingamaBob") .AsEnumerable() .First(t => t.Name == "ThingamaBob");</code>
重要提示:
ObjectQuery.ToTraceString()
可以检查生成的 SQL,揭示任何应用的排序规则。以上是如何处理 LINQ to Entities 查询中的区分大小写?的详细内容。更多信息请关注PHP中文网其他相关文章!