gpt4 book ai didi

asp.net - 如果结果集为空,Linq lambda 表达式抛出错误

转载 作者:行者123 更新时间:2023-12-01 16:09:26 24 4
gpt4 key购买 nike

在我的项目中,我需要使用 linq 选择一行值

try
{
return database.Employees.Where(x => id.Equals(x.ID)).Single();
}
catch (InvalidOperationException Ix)
{
throw;
}

使用它,我将通过实体对象获取相应的行值。但如果结果集为空,则会抛出错误。问题出在我的项目中 Exception is must to be logged。我如何管理此代码而不会出现异常。

最佳答案

你正在使用 Single() 这是 documented如果没有结果则抛出异常。如果您不想要这种行为,请不要使用该方法:)

如果您使用 SingleOrDefault()如果没有结果,它将返回 null。但是,如果有多个结果,它仍然会抛出异常。或者,您可以使用 FirstOrDefault 来避免这种情况。

请注意,您也可以在 Single/SingleOrDefault 中指定谓词,因此您不需要先调用 Where:

return database.Employees.SingleOrDefault(x => id.Equals(x.ID));

关于asp.net - 如果结果集为空,Linq lambda 表达式抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10993876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com