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,

0 ответов

Другие вопросы по тегам