在我的项目中,我需要使用 linq 选择一行值
try
{
return database.Employees.Where(x => id.Equals(x.ID)).Single();
}
catch (InvalidOperationException Ix)
{
throw;
}
使用它,我将通过实体对象获取相应的行值。但是如果结果集为空,则会引发错误。问题出在我的项目中,必须记录异常。如何在不出现异常的情况下管理此代码。
在我的项目中,我需要使用 linq 选择一行值
try
{
return database.Employees.Where(x => id.Equals(x.ID)).Single();
}
catch (InvalidOperationException Ix)
{
throw;
}
使用它,我将通过实体对象获取相应的行值。但是如果结果集为空,则会引发错误。问题出在我的项目中,必须记录异常。如何在不出现异常的情况下管理此代码。
如果没有结果,您正在使用Single()
记录在案的抛出异常。如果您不想要这种行为,请不要使用该方法:)
如果你使用SingleOrDefault()
它,如果没有结果,它将返回 null。但是,如果有多个结果,它仍然会抛出异常。或者,您可以使用FirstOrDefault
来避免这种情况。
Single
请注意,您也可以在/中指定谓词SingleOrDefault
,因此您不需要Where
先调用:
return database.Employees.SingleOrDefault(x => id.Equals(x.ID));
try
{
return database.Employees.SingleOrDefault(x => id.Equals(x.ID));
}
catch (InvalidOperationException Ix)
{
throw;
}