很久没有想明白是什么原因导致了这种情况下的投递异常。以下是我的代码。
var ratingTermDetails = dtRating.AsEnumerable()
.Where(data => data.Field<int>("RATINGID") == ratingId)
.FirstOrDefault();
dtRating是一个从数据库(oracle)中填充的数据型。在数据库中,列Ratingid的数据类型是Integer,并且该列不可为空。变量ratingId也是一个整数。
我不知道这对你有多大帮助,因为我从来没有见过类似的Linq。但在我的理解中,你是说RATINGID在DB中是int,而且是一个主键?
那么这个应该是可以的。
var ratingTermDetails = dtRating
.Where(data => data.Field.RATINGID == ratingId)
.FirstOrDefault();
就像@MarcGravell说的,在C#中,变量被转换成了System.Decimal。改成后我的代码就能用了。