2016-05-03 10 views
-5

Ich versuche zu verstehen, warum die folgende Methode diesen Fehler verursacht. Ich würde es begrüßen, wenn jemand mir helfen oder mir in die richtige Richtung zeigen würde.Operator '==' kann nicht auf 'System, .Nullabe <decimal>' und 'System.Nullable <double>' angewendet werden. Fehler

public List<Data> GetResults(string manufacturer, int? vehicle, double? engine) 
     { 
var results =c ontext.Data.Where(x => x.Name == manufacturer) 
         .Where(x => x.ModelId == model) 
         .Where(x => x.EngineLitreCapacity == engine) // << error occurs on this line! 
         .GroupBy(x => x.EngineLitreCapacity) 
         .Select(x => x.FirstOrDefault()) 
         .ToList(); 

     } 

Was mache ich falsch und wie würde ich bei der Lösung meiner Abfrage oben gehen? Danke

+0

Sagen Sie mir zuerst, was verstehen Sie über den Fehler, den Sie bekommen? Was bedeutet es für dich? – AntiTcb

+0

Die Fehlermeldung sagt alles, was Sie brauchen, es gibt keinen '==' Operator, der 'Nullable ' und 'Nullable ' vergleichen kann. Du musst das eine in das andere umwandeln. –

Antwort

6

EngineLitreCapacity scheint ein double? ein decimal? während engine zu sein. Diese Variablen sind ohne Casting nicht vergleichbar. Die einfache Lösung besteht darin, engine eine decimal? zu machen. Das kann später zu Problemen führen, die Sie beheben müssen. Es ist definitiv eine schlechte Idee, einfach die double? zu werfen, da ihre Genauigkeit die Gleichung sowieso zum Scheitern bringen könnte.

+1

FFS .. ich fühle mich dumm jetzt lol .. Danke Pat! – 1future

Verwandte Themen