Очень серьезный баг в DbHelper
Added 2023-03-27 12:27:03 +0000 UTCСейчас записывал очередное видео и нашел очень серьезный баг в 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>
Програмысли
2023-03-30 13:14:14 +0000 UTC<div ><div><span class="text">В DbSessionDAL Create и Update какие значения мы получим? Может ExecuteScalarAsync сделать без возврата значений, для возврата у нас уже есть QueryAsync?</span></div></div>
Дмитрий Чепурченко
2023-03-30 06:10:52 +0000 UTC