簡體   English   中英

是否可以在SQL Server數據庫中使用Linq .IndexOf()? -.Contains()的替代方法

[英]Is it possible to use Linq .IndexOf() in SQL Server database ? - Alternative to .Contains()

有誰知道一種使用方式/如果可能的話

.IndexOf()

在SQL Server而不是

.Contains()

目前,我收到NotSupportedException

String.IndexOf到SQL的翻譯不支持帶有StringComparison參數的版本

我想要比.Contains(ToLower(string))更好的性能。

這是我嘗試的:

.Where(b => b.item.IndexOf(boSearchTerm, StringComparison.CurrentCultureIgnoreCase)!= -1)

StringComparison的概念不能轉換為SQL,因為數據庫使用更特定的排序規則概念。 要進行不區分大小寫的比較,請在存儲時使用不區分大小寫的排序規則(實例,數據庫或列定義),或在比較中強制使用特定的排序規則 ,請參見對表達式進行強制轉換 所使用的歸類完全針對所使用數據的國家類型。

同樣,在C#和任何其他選擇的語言中,使用ToLower()是不正確的。 不會通過 土耳其語我測試

將您的列排序規則設置為CI(不區分大小寫),並且Contains將不區分大小寫... – Wouter Huysentruit 1分鍾前

忽略SQL查詢中的大小寫的最簡單方法是將列的排序規則設置為CI(不區分大小寫),這樣Contains或任何其他字符串比較將不區分大小寫。

如果要改進此查找,還可以在該列上添加FULLTEXT INDEX

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM