没有为类型'System.Int64'和& # 39;System.Decimal& # 39;

本文关键字:System 类型 Decimal Int64 | 更新日期: 2023-09-27 18:19:03

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

你知道是什么问题吗?

没有为类型'System.Int64'和& # 39;System.Decimal& # 39;

像这样修改代码:

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

没有必要将其声明为小数,因为无论如何都不使用小数。

问题是appId是十进制的。只要声明为long:

long  appId = 8463054;
var pp = APPLICATIONS.Where(a => a.APPLICATION_ID == appId);
pp.Dump();
相关文章: