二进制运算符Equal未定义类型&System; System.Int64'和' System.Decimal'

时间:2015-10-23 18:53:43

标签: c# linq linqpad

我在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 个答案:

答案 0 :(得分:1)

更改您的代码:

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

没有必要将其声明为小数,因为您还没有使用小数位。

答案 1 :(得分:1)

问题是appId是十进制的。只需声明它:

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