Dapper处理返回空结果集

时间:2011-07-29 18:10:39

标签: datareader dapper

我们正在使用Dapper来映射我们的sql数据,到目前为止它已经运行得很好。我有一个案例,虽然我们正在做类似的事情:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).Single();

只要我正在调用的存储过程返回数据,这就很有用。有时存储过程可能不会返回结果并在out参数中返回错误。 这似乎在Dapper中引起了一个问题,因为dapper会抛出错误:

“当使用多映射API时,如果您拥有Id以外的密钥,请确保设置splitOn参数

有没有办法编写查询,以便在返回空结果时正确处理这种情况,或者这是Dapper的限制?

1 个答案:

答案 0 :(得分:2)

SingleOrDefault()是你的朋友

试试这个:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).SingleOrDefault();
if (someObject != null)
{
  // operate on your results here
}
return someObject;

您还需要确保TNullable