Бинарный оператор Equal не определен для типов "System.Int64" и "System.Decimal".

У меня есть странная проблема в Linqpad, которая "иногда", что я пытаюсь сделать запрос, как это:

decimal  appId = 8463054;
var pp = APPLICATIONS.Where(a => a.APPLICATION_ID == appId);
pp.Dump();

Я получаю эту ошибку:

InvalidOperationException
The binary operator Equal is not defined for the types 'System.Int64' and 'System.Decimal'. 

Есть идеи, в чем проблема?

2 ответа

Проблема в том, что appId является десятичным. Просто объявите это как долго:

long  appId = 8463054;
var pp = APPLICATIONS.Where(a => a.APPLICATION_ID == appId);
pp.Dump();

Измените свой код следующим образом:

long appId = 8463054; // long is just a keyword for System.Int64

Нет необходимости объявлять его как десятичное число, так как вы все равно не используете дробные цифры.

Другие вопросы по тегам