处理“序列”的最佳方式是什么?序列不包含任何元素'异常?
我使用QueryMultiple
映射SQL Server存储过程的(多个)结果,有时一个或多个结果集为空。目前我正在记录异常,但我想更好地处理它。
要获取结果集,请使用.ToSingle()
或ToList()
我使用包装器使映射代码更容易(我使用它超过100次)...
public static void ExecuteSprocDapperMulti(string name, DynamicParameters parameters, Action<SqlMapper.GridReader> action)
{
DefaultTypeMap.MatchNamesWithUnderscores = true;
using (IDbConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DB"].ConnectionString))
using (var multi = con.QueryMultiple(name, parameters, commandType: CommandType.StoredProcedure))
{
try
{
action(multi);
}
catch (Exception e)
{
LogError(e);
}
}
}
然后称之为
var p = new DynamicParameters(new { id });
ExecuteSprocDapperMulti('Get_Car', p, multi =>
{
ro = multi.Read<Car>().ToSingle();
ro.Wheels= multi.Read<Wheels>().ToList();
ro.Nuts= multi.Read<Nuts>().ToList();
ro.Bolts= multi.Read<Bolts>().ToList();
});
理想情况下,我想在ExecuteSpocDapperMulti
内处理。