2015-10-23 1 views
1

У меня есть эта странная проблема в LINQPad, что «иногда», что я пытаюсь сделать запрос, как это:Бинарный оператор Равный не определен для типов «System.Int64» и «» System.Decimal

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'. 

Любая идея, что проблема?

+0

хорошо он не работает с '' long' или System.Int64' – Yar

+1

@Hooman - Rebuild –

+0

@roryap как я могу восстановить в LINQPad ?! – Yar

ответ

1

Изменить код так:

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

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

+1

хорошо я понимаю, что вы там делали, но я получаю ту же ошибку даже с 'long' или' System.Int64' – Yar

+1

Вы получаете сообщение об ошибке, которое по-прежнему относится к 'System.Decimal'? Вы перестроили? –

+0

Я получаю точно такую ​​же ошибку и нет, я не перестраивал, так как я использую Linqpad, а не VS – Yar

1

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

long appId = 8463054; 
var pp = APPLICATIONS.Where(a => a.APPLICATION_ID == appId); 
pp.Dump(); 
Смежные вопросы