C#Where子句中的强制转换异常



我已经有一段时间没有试图弄清楚是什么导致了这种情况下的强制转换异常。以下是我的代码。

var ratingTermDetails = dtRating.AsEnumerable()
.Where(data => data.Field<int>("RATINGID") == ratingId)
.FirstOrDefault();

dtRating是一个从数据库(oracle(填充的数据表。数据库中Ratingid列的数据类型为Integer,该列不可为Null。变量ratingId也是一个整数。

我不知道这有多大帮助,因为我以前从未见过类似的Linq。但据我所知,你是说RATING ID在数据库中是int,它是主键吗?

那么这应该行得通。

var ratingTermDetails = dtRating
.Where(data => data.Field.RATINGID == ratingId)
.FirstOrDefault();

正如@MarcGravell所说,该变量正在被转换为C#中的System.Decimal。更改为我的代码后工作。

最新更新