в бд.
Обычно мы добавляем данные в бд следующим образом
await _context.entity.AddAsync(newEntity)
await _context.SaveChangesAsync();
Я случайно в интернетах увидел следующий код
_context.entity.Add(newEntity)
await _context.SaveChangesAsync();
Я задумался, действительно ли необходимо во всех случаях использовать AddAsync? Может быть есть случаи, когда это лишь снижает производительность приложения? В инете я вычитал, что AddAsync дает разрешение на использование специальных генераторов значений используя - SequenceHiLo. Как я понял, благодаря этой фиче у нас резервируются айдишники и у нас сразу указывается id при добавлении, снижая нагрузку на бд - может быть, я не прав и плохо понял.
Хотелось бы получить какой-то краткий комментарий на эту тему, кто уже с этим сталкивался. В чем реально отличие Add и AddAsync? Стоит ли задумываться какой из методов юзать?
addasync специфичен, почитай описание зачем он нужен, в любом случае при add ты даже не делаешь никаких записей в базу, у тебя меняется лишь состояние в changeTracker, поэтому смысла делать это асинхронным нет
Этот метод является асинхронным, чтобы разрешить специальным генераторам значений, таким как microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo, асинхронно обращаться к базе данных. Во всех остальных случаях следует использовать неасинхронный метод.
Мне все равно не ясно почему нет смысла использовать асинхронный метод. Не использовать только потому, что он делает что-то ещё помимо изменения состояния? - Странный аргумент.
Anton какую книгу посоветовать напомни
ладно если без рофлов, то зачем тебе ждать пока выполнится задача, если тебе нужно изменить одно поле у обьекта, в частности сделать состояние "Added"
Конкурентность в C#. Рекомендую
да ты можешь писать его асинхронным, просто выполнится он сихронно вот и все
Если я вижу await, то я ожидаю, что в нем есть смысл и что что-то происходит асинхронное
Обсуждают сегодня