2010-10-01 36 views
2

我使用下面的代码片断:通知LINQ一个字符串表示一个小数而不是一个双精度值?

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

为查询的一部分。 “it”代表手头的记录。 然后我用这个字符串在

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

我的问题是,当列类型是小数的LINQ解释的字符串作为双过去了,说的类型的双和小数失败不兼容:

参数类型'Edm.Decimal'和 'Edm.Double'与此 操作不兼容。邻近大于或等于 表达,第8行,第12列,其中: (it.Cost> = 70.5 & & it.Cost < = 100) 的OrderBy:it.ProductName

我怎样才能确保LINQ会认识到字符串必须解释为十进制而不是双精度?

回答

2

发现: 我需要后缀包含“M”双,在我的情况的字符串:

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