XXX4Fans
Програмысли from boosty
Програмысли

boosty


Очень серьезный баг в DbHelper

Сейчас записывал очередное видео и нашел очень серьезный баг в DbHelper. После рефакторинг я использовал следующий код: 
public static async Task ExecuteScalarAsync(string sql, object model)
{
  using (var connection = new NpgsqlConnection(DbHelper.ConnString))
  {
    await connection.OpenAsync();
    return await connection.ExecuteAsync(sql, model);
  }
}
Проблема в том, что connection.ExecuteAsync не возвращает никаких значений, этот метод нужно выполнять, когда нужно обновить или удалить данные. Он возвращает статус выполнения команды и значит мы будем в результате видеть 1 или -1. Чтобы возвращать значение, нужно использовать QueryХХХХ. В данном случае нужно использовать:
return await connection.QueryFirstOrDefaultAsync(sql, model);

Comments

<div ><div><span class="text">Дмитрий Чепурченко, Я уже сделал такой рефакторинг, чуть позже загружу изменения. Я сейчас добавляю тесты офлайн, потом просто покажу изменения в видео.</span></div></div>

Програмысли

<div ><div><span class="text">В DbSessionDAL Create и Update какие значения мы получим? Может ExecuteScalarAsync сделать без возврата значений, для возврата у нас уже есть QueryAsync?</span></div></div>

Дмитрий Чепурченко


Related Creators