I have a column in my database (SQL Server) where varchar averages are stored .
The values are not always acceptable number, it might be something like: 0, 12, 5.5, .4, 4.0, 6., 5.21428571428571428571428571428571428571, X, failor just an empty text.
When assigning the linq variable, I want to display:
success if the average acceptable number and> = 4failedif the mean is a real number and <4- raw text if the average is not a valid number
The code:
myresults = myDataContext.myDbFunction()
double note;
from a in myresults
select new MainReportModel()
{
Id = a.id,
Lastname = a.nom,
Firstname = a.prenom,
Average = a.moyenne,
Result = double.TryParse(a.moyenne.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, out note) ? (double.Parse(a.moyenne.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture) < 4 ? "failed" : "success") : a.moyenne
}
But Parse does not work.
double.Parse(a.moyenne.Trim() (, double.Parse("3.3") .
, a.moyenne.Trim() Parse.
, TryParse true?
. :
Could not translate expression 'value(MyProjectWeb.Models.MyProjectDataContext).myDbFunction().Select(a => new MainReportModel() {Id = a.id, Lastname = a.nom, Firstname = a.prenom, Average = a.moyenne, Result = IIF(TryParse(a.moyenne.Trim(), Number, Invoke(value(System.Func`1[System.Globalization.CultureInfo])), Invoke(value(System.Func`1[System.Double]))), IIF((Parse(a.moyenne.Trim(), Number, Invoke(value(System.Func`1[System.Globalization.CultureInfo]))) < 4), Invoke(value(System.Func`1[System.String])), "success"), ((a.moyenne) + "</span>"))})' into SQL and could not treat it as a local expression.