我有这个代码:
public async Task<T> QuerySingleOrDefault<T>(string sqlStatment, object parameters, CommandType commandType = CommandType.StoredProcedure, int timeout = 90, EnumConnStrings ConnString )
{
using SqlConnection connection = new SqlConnection(_appSettings.DataSource.GetConnectionById(ConnString));
return await connection.QuerySingleOrDefaultAsync<T>(sqlStatment, parameters, commandType: commandType, commandTimeout: timeout);
}
现在在精巧的更新之后它对我大喊大叫
possible null reference return
在这一行中返回
这是为什么呢? dapper 有什么变化吗?我应该怎么做才能让它不再发出警告而不是抑制警告?
正如 b166er 的评论所说,如果什么也没找到,
QuerySingleOrDefaultAsync
将返回默认值。如果您查看 QuerySingleOrDefaultAsync
,您可以看到它返回 Task<T?>
,这意味着默认值将为 null(因为 T?
)。
您正在返回该调用的结果(可能为空),但您的方法返回
Task<T>
,这就是您收到该警告的原因。
要修复警告,根据您的需要,您必须确保不会返回 null 或将方法的返回类型更改为
Task<T?>