データベーススキーマには文字列として定義された列がありますが、金額フィールドを持つデータベースがあります。これは小数です。金額の数値に基づいて値を見つけるために、Linq クエリを実行できるようにしたいと考えています。
CompareTo メソッドの使用に関するthisおよびthisのような質問がありますが、この状況では機能しません。たとえば、データベースに次の請求金額があります。
556
130
1450
410
次のコード:
from t in test
where t.BillAmount.CompareTo("50") > 0
select t
値は返されます556
が、他の値はすべて 10 進値の 50 を超えていますが、返されません。
where 行を次のように変更します。
where t.BillAmount.CompareTo("50") < 0
130
、1450
、および1450
それらは「小さい」ため、文字列として 50を返しますが、数値としては返しません。
私はエンティティ フレームワークを使用していないため、次のようなことはできません。
where SqlFunctions.StringConvert((double)t.BillAmount).Trim() > 50
また、データベース スキーマを制御できないため、これらの値を変更することもできません。BillAmount フィールドを数値と比較して、その上/下の値を返すにはどうすればよいですか?