我有以下代码insdie我的asp.net mvc web应用程序: -
SystemInformation s = new SystemInformation()
{
AssetCount = new AssetCount() {
CustomerCount = entities.AccountDefinitions == null ? 0 : entities.AccountDefinitions.Count(),
RackCount = tms.TMSRacks == null ? 0 : tms.TMSRacks.Count(),
ServerCount = tms.TMSServers == null ? 0 : tms.TMSServers.Count(),
CustomCount = tms.CustomAssets==null? 0 : tms.CustomAssets.Sum(a => a.Quantity)
},
但是目前如果Enumerable中的任何一个为空,我将收到以下错误: -
转换为值类型'Int32'失败,因为具体化值 一片空白。结果类型的泛型参数或查询必须 使用可空类型。
答案 0 :(得分:8)
问题可能是tms.CustomAssets
集合为空。
要修改如下所示的内容:
var tmpCustomCount = tms.CustomAssets.Sum(a => (int?)a.Quantity);
...
AssetCount = new AssetCount()
{
...
CustomCount = tmpCustomCount ?? 0
}