我有一个带有金额字段的数据库 - 它是一个小数,尽管数据库架构将列定义为字符串。我希望能够运行 Linq 查询以根据金额的数字查找值。
有这样和这样的问题谈论使用 CompareTo 方法,但在这种情况下不起作用。例如,我在数据库中有以下账单金额:
556
130
1450
410
以下代码:
from t in test
where t.BillAmount.CompareTo("50") > 0
select t
将返回值556
但不返回任何其他值,即使它们都高于十进制值 50。
将 where 行更改为:
where t.BillAmount.CompareTo("50") < 0
将返回130
, 1450
, 并且1450
因为它们“小于”然后 50 作为字符串,但不是作为数字。
我没有使用实体框架,所以我不能做类似的事情:
where SqlFunctions.StringConvert((double)t.BillAmount).Trim() > 50
我也无法控制数据库架构,因此无法更改这些值。如何将 BillAmount 字段与数字进行比较并返回其上方/下方的值?