我的代码很简单:
CommissionTierEntity tier = structure.Tiers.FirstOrDefault(x => commiossionInfo.Sum >= x.NumberFrom && commiossionInfo.Sum <= x.NumberTo);
if (tier != null)
{
com.PaymentAmount = trade.PipValue * (tier.Commission / 100);
commiossionInfo.Sum += com.PaymentAmount;
payable = true;
}
tier
变量为null,但仍然进入if块
看到屏幕截图咆哮
更奇怪的是,我写入控制台,来自null对象的成员,并将其写入控制台... =
答案 0 :(得分:0)
这是因为您的数据库中的列可能有默认值,当您使用FirstOrDefault
时,它会尝试获取您的行,如果不能,则会返回列的默认值。
尝试使用First
insted。请注意First
在未找到行的情况下抛出异常。