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 進行二次比較:
Thingies.Where(t => t.Name == "ThingamaBob") .AsEnumerable() .First(t => t.Name == "ThingamaBob");
重要提示:
ObjectQuery.ToTraceString()
可以檢查產生的 SQL,以揭示任何應用的排序規則。 以上是如何處理 LINQ to Entities 查詢中的區分大小寫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!