通知LINQ字符串表示小数而不是双精度值?

时间:2010-10-01 20:26:46

标签: linq-to-entities

我正在使用以下代码段:

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能够实现字符串必须解释为十进制而不是双倍?

1 个答案:

答案 0 :(得分:2)

找到它: 在我的例子中,我需要为包含带有'M'的double的字符串添加后缀:

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