我们正在使用Dapper来映射我们的sql数据,到目前为止它已经运行得很好。我有一个案例,虽然我们正在做类似的事情:
someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).Single();
只要我正在调用的存储过程返回数据,这就很有用。有时存储过程可能不会返回结果并在out参数中返回错误。 这似乎在Dapper中引起了一个问题,因为dapper会抛出错误:
“当使用多映射API时,如果您拥有Id以外的密钥,请确保设置splitOn参数
有没有办法编写查询,以便在返回空结果时正确处理这种情况,或者这是Dapper的限制?
答案 0 :(得分:2)
SingleOrDefault()
是你的朋友
试试这个:
someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).SingleOrDefault();
if (someObject != null)
{
// operate on your results here
}
return someObject;
您还需要确保T
为Nullable