2010-10-01 34 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'); 
相關問題