varchar(10) 型の「長さ」というフィールドを持つテーブルがあります。これらのフィールドには、「実数」(小数点付きの分数。例: 647.45224) が含まれ、文字列として表現されます。この「ネイティブ」SQL クエリのように、このフィールド (数値表現) によって SELECT の結果を並べ替える Linq-to-SQL クエリを呼び出したいと思います。
SELECT * FROM [Table] ORDER BY CAST(length AS float) DESC
LinqToSQL に文字列を float に変換するように指示するいくつかの方法を試しましたが、実行すると変換エラーが返されます (インテリセンス エラーもコンパイル中のエラーも実行時のみではないことに注意してください)。
私はもう試した:
Results = dbx.[Items].Where([conditions]).OrderByDescending(b => float.Parse(b.length))
また、丸めと Int への変換とそれによる並べ替えで解決します (もちろん実数を使用することをお勧めします)、私は試しました:
Results = dbx.[Items].Where([conditions]).OrderByDescending(b => Convert.ToInt32(b.length))
しかし、これもエラーになります。
何か方法はありますか?