Asp.net mvc 错误:-转换为值类型';Int32';由于物化值为null,因此失败
我有以下疑问:Asp.net mvc 错误:-转换为值类型';Int32';由于物化值为null,因此失败,asp.net-mvc,Asp.net Mvc,我有以下疑问: int? Giver = Convert.ToInt32(db.vwAssignments.Sum(a => a.Amount)); 但是,如果没有与搜索条件匹配的记录,则将引发以下错误 转换为值类型“Int32”失败,因为具体化的值为null。结果类型的泛型参数或查询必须使用可为空的类型 请帮助了解防御性编程的基本知识: 首先将Sum()操作的结果赋给一个可为空的变量 object resultOfSum = db.vwAssignments.Sum(a =>
int? Giver = Convert.ToInt32(db.vwAssignments.Sum(a => a.Amount));
但是,如果没有与搜索条件匹配的记录,则将引发以下错误
转换为值类型“Int32”失败,因为具体化的值为null。结果类型的泛型参数或查询必须使用可为空的类型
请帮助了解防御性编程的基本知识:
- 首先将
操作的结果赋给一个可为空的变量Sum()
object resultOfSum = db.vwAssignments.Sum(a => a.Amount);
- 检查空值并且仅当它不为null时,然后将其转换为
INT
if(resultOfSum != null) { int Giver = Convert.ToInt32(resultOfSum); }
Amount
字段一开始是Int
,很可能这将给您提供空值或有效的Int
-我认为调用Convert.ToInt32()
是没有必要的:
int? Giver = db.vwAssignments.Sum(a => a.Amount);
if(Giver.HasValue)
{
......
}
是否尝试将值求和为null?当有记录时,工作正常,但如果没有记录,则会引发错误