tengo la siguiente declaración de LINQ:C# Convert.ToDouble (valor) en la Declaración de Lambda LINQ
Items = Items.Where(p => p.LeadDatas.Any(
q =>
q.LeadField.Name == descriptor.Name &&
Convert.ToDouble(q.Value) == Convert.ToDouble(value)));
El q.Value
es un valor de cadena de un doble, y value
es también un valor de cadena de un doble, tanto de estos deben convertirse a dobles para que puedan ser comparados por igualdad.
Cuando elimino errores sobre esta declaración de LINQ, me estoy haciendo la siguiente excepción de SQL:
error en la conversión de tipo de datos varchar a flotar
No estoy seguro de por qué no está permitiendo que haga esto, pero me pregunto cuál es la solución, necesito comparar mis dos valores para la igualdad aquí.
Es más que posible tratar de realizarlo en SQL - es 100% absolutamente cierto (ver el mensaje de error) – Jeff
@ JeffN825: Mi punto es que es posible que el intento de realizar la conversión del valor "fijo" es el problema, no el intento de convertir los datos que están en la base de datos. Editará para aclarar. –
Para mi propia educación, ¿por qué es malo comparar dobles? Debido al viejo problema "decimal"? (http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems) – Jeff