我正在使用以下代码段:
var ws = string.Format(" it.{0} >= {1} && it.{0} <= {2} ", column, min, max)
作为查询的一部分。 “它”代表了手头的记录。 然后我在
中使用此字符串Var result = AllRecords
.Where(ws)
.OrderBy(it.ProductName);
我遇到的问题是,当列类型为Decimal时,LINQ将传入的字符串解释为double,并且通过说double和decimal类型不兼容而失败:
参数类型'Edm.Decimal'和 'Edm.Double'与此不相容 操作。接近大于或等于 表达式,第8行,第12列。其中: (it.Cost&gt; = 70.5&amp;&amp; it.Cost&lt; = 100) orderby:it.ProductName
如何确保LINQ能够实现字符串必须解释为十进制而不是双倍?
答案 0 :(得分:2)
找到它: 在我的例子中,我需要为包含带有'M'的double的字符串添加后缀:
var ws = string.Format(" it.{0} >= {1} && it.{0} <= {2} ", column, min+'M', max+'M');