无法应用运营商&#39; ==&#39;输入&#39; System,.Nullabe <decimal>&#39;和&#39; System.Nullable <double>&#39;错误

时间:2016-05-03 13:54:11

标签: c#

我试图理解为什么下面的方法会引发此错误。如果有人帮助或指出我正确的方向,我将不胜感激。

 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();

        }

我做错了什么,我将如何解决上面的查询? 谢谢

1 个答案:

答案 0 :(得分:6)

EngineLitreCapacity似乎是decimal?enginedouble?。如果没有铸造,那些变量就无法比较。

简单的解决方案是engine成为decimal?。这可能会导致以后出现转换问题,您必须解决这个问题。仅仅转换double?绝对是一个坏主意,因为它的精度可能会导致方程失败。