在我的SQL表中,我有一個string
數據類型的版本列,其中包含典型的版本值,如'1.0.0'和'2.0.2'等等。在Linq to Sql查詢中比較兩個包含多個點的字符串
我想編寫一個查詢,檢索版本低於/大於指定版本的所有記錄。
例如,假設我的表是這樣的:
====MY TABLE====
version column2 column3 , ....
_________________________________________________
2.0.6 ... ... ...
2.0.5 ... ... ...
2.0.4 ... ... ...
2.0.3 ... ... ...
現在我想用version
低,等於2.0.5
我的主要問題檢索所有的記錄是輸入( 2.0.5在這種情況下)和version
列值都是字符串。所以他們無法正常比較。
我已經試過:
from o in MyTable.Where(w=> float.Parse(w.version) <= float.Parse(inputVersion))
/* Other codes ommited for clarity */
但很明顯,它拋出一個異常,因爲2.0.3
不是浮動。
有一個method比較兩個版本字符串,但因爲它拋出一個異常,說我不能使用它LINQ2SQL查詢中
「方法X沒有支持轉換爲SQL。」
此外,我已經試過:
from o in MyTable.Where(w=> Version.Parse(w.version) <= Version.Parse(inputVersion))
/* Other codes ommited for clarity */
但它拋出同樣的異常也是如此。
所以我的問題是我怎麼能比較這些值內linq到sql查詢?
Version.Parse沒有翻譯成SQL - 簡單地使用'Replace'功能來做到這一點。 – CSL