在我的數據庫中我有這個字段:mySerial Double?
我有一個Multicritera搜索,我必須搜索這個字段。
用戶想要在該字段上搜索輸入開始,結束或他們想要的任何內容。Linq Double包含
所以我這樣做:
results.Where(x => x.mySerial.ToString().Contains(TextBox_mySerial.Text)) ;
當我搜索 「88890」
我應該有:888900,888901,888903,888908,888909作爲結果。
但 我只得到:888889
的LINQ把.ToString().Contains
我到:
WHERE CONVERT(NVARCHAR(30), [t0].[mySerial], 2) LIKE '%88890%'
但我想要的是:
WHERE [mySerial] LIKE '%88890%'
有沒有辦法在LINQ to實現這一目標或做我必須在我的視圖中投入[mySerial]
到一個varchar?
我並不感到驚訝。我一直認爲地獄中有一個特殊的地方,像我這樣的人.ToString()。包含()一個int或一個double。 –
如果你運行一個查詢並選擇'CONVERT(NVARCHAR(30),[mySerial],2)'你會得到什麼結果?根據文檔2的風格會給科學記數法,所以我想知道這是否會讓你感到困惑。剛試過'SELECT CONVERT(NVARCHAR(30),CAST(888889 AS FLOAT),2)',結果是8.888890000000000e + 005。所以也許先嚐試投射到'int'? – juharr
不知道這是否會工作,但如果您嘗試'((字符串)x.mySerial).Contains(TextBox_mySerial.Text)''會發生什麼? – juharr