出现此错误的原因是查询返回了空结果集。 解决方案之一是验证查询是否正确,在查询中使用EF的日志记录器来检查执行的SQL语句。
例如,以下代码在执行查询时,使用EF的日志记录器打印出SQL语句,以便检查查询语句是否正确。
var results = _context.Users
.FromSqlRaw("SELECT * FROM Users WHERE Age > {0}", ageParameter)
.ToList();
var logger = _context.GetService>();
logger.LogInformation($"Executing SQL: {results.ToQueryString()}");
如果输出的日志中存在错误,则需要修改查询语句,以返回所需的结果。 如果日志中没有错误,则可以查找其他原因,例如查询返回的结果集为空。