У меня есть база данных с полем количества - это десятичное число, хотя в схеме базы данных столбец определен как строка. Я хочу иметь возможность выполнить запрос Linq, чтобы найти значения на основе числа для суммы.
Есть вопросы типа this и this , в которых говорится об использовании метода 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 с числом и вернуть значения выше / ниже его?