Dapper MultiMap "Последовательность не содержит элементов"
Каков наилучший способ обработки исключения "Последовательность не содержит элементов"?
я использую 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
,