在我的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