sequence不包含任何元素Error Max()

本文关键字:Error Max 元素 何元素 sequence 包含任 | 更新日期: 2023-09-27 18:02:38

I am Getting:

序列不包含元素

private int? GetPrecedingSibling(int? contentid,int? templateid)
{
    var value = _sequenceTemplateItemService.Query(e => e.templateId == templateid && e.contentItemId == contentid).Select(t => t.id).Max();
    if (value != 0)
        return value; 
    return null;
}

sequence不包含任何元素Error Max()

您的查询没有返回任何id。这就是为什么例外。如果您的id类型为int?,则使用DefaultIfEmpty(),如:

var value = _sequenceTemplateItemService.Query(e => e.templateId == templateid && e.contentItemId == contentid)
                    .Select(t => t.id)
                    .DefaultIfEmpty()
                    .Max();

其他选项是检查Any记录,然后返回Max或null。

var tempResult = _sequenceTemplateItemService.Query(e => e.templateId == templateid && e.contentItemId == contentid)
                    .Select(t => t.id);
if (tempResult.Any())
{
    return tempResult.Max();
}
else
{
    return null;
}