2010-10-01 4 views
2

J'utilise l'extrait suivant:Informer LINQ qu'une chaîne représente une valeur décimale et non une valeur double?

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

dans le cadre de la requête. "it" représente le record à portée de main. J'utilise ensuite cette chaîne dans un

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

Le problème que j'ai, est que lorsque le type de colonne est décimal LINQ interprète la chaîne transmise en double et échoue en disant les types double et décimal sont incompatibles:

Les types d'argument 'Edm.Decimal' et 'Edm.Double' sont incompatibles pour cette opération . Près supérieur ou égal à l'expression , ligne 8, colonne 12. où: (it.Cost> = 70,5 & & it.Cost < = 100) orderby: it.ProductName

comment puis-je faire en sorte que LINQ réalisera que la chaîne doit être interprétée comme décimale et non double?

Répondre

2

Je l'ai trouvé: J'ai besoin de suffixe de la chaîne qui contient un double avec « M », dans mon cas:

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