Сообщите LINQ, что строка представляет собой десятичное, а не двойное значение? - PullRequest
2 голосов
/ 02 октября 2010

Я использую следующий фрагмент:

var ws = string.Format(" it.{0} >= {1} && it.{0} <= {2} ", column, min, max)

как часть запроса. «Это» представляет запись под рукой. Затем я использую эту строку в

Var result = AllRecords
        .Where(ws)
        .OrderBy(it.ProductName);

Проблема, с которой я столкнулся, заключается в том, что когда тип столбца является десятичным, LINQ интерпретирует переданную строку как двойную и завершается ошибкой, говоря, что типы double и decimal несовместимы:

Типы аргументов 'Edm.Decimal' и «Edm.Double» несовместимы для этого операция. Почти больше или равно выражение, строка 8, столбец 12. где: (it.Cost> = 70,5 && it.Cost <= 100) Orderby: it.ProductName </p>

как я могу гарантировать, что LINQ поймет, что строка должна интерпретироваться как десятичная, а не как двойная?

1 Ответ

2 голосов
/ 02 октября 2010

Нашел это: Мне нужно добавить суффикс строки, содержащей двойное число, к букве «М», в моем случае:

var ws = string.Format(" it.{0} >= {1} && it.{0} <= {2} ", column, min+'M', max+'M');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...