我有一个表,其中有一个名为“长度”的字段,类型为 varchar(10)。这些字段包含“实数”(带小数点的分数。例如 647.45224) - 以字符串表示。我想调用一个 Linq-to-SQL 查询,该查询将按此字段(以其数字表示形式)对 SELECT 的结果进行排序,就像这个“本机”SQL 查询一样:
SELECT * FROM [Table] ORDER BY CAST(length AS float) DESC
我已经尝试了几种方法来告诉 LinqToSQL 将字符串转换为浮点数,但是在运行它时 - 它返回一个转换错误(请注意,编译期间没有智能感知错误,也没有错误,只有在执行时)。
我试过了:
Results = dbx.[Items].Where([conditions]).OrderByDescending(b => float.Parse(b.length))
我还将满足于舍入并转换为 Int 并以此进行排序(尽管我当然更喜欢使用实数),我尝试过:
Results = dbx.[Items].Where([conditions]).OrderByDescending(b => Convert.ToInt32(b.length))
但这也给出了一个错误。
有什么办法吗?