Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

DbSet<T>.Add() vs DbSet<T>.AddAsync()

#c_sharp #net #entity_framework #асинхронность #entity_framework_core


Есть отличная статья-ответ, которую наверное можно как некий справочник использовать
когда необходимо освежить некоторые моменты в понимании параллельных вычислений. В
этой статье касаемо асинхронного программирования, говорится


  Асинхронность (asynchrony) подразумевает, что операция может быть
  выполнена кем-то на стороне...


и исходя из этого я могу понять разницу между DbSet.Save() и DbSet.SaveAsync(),
а именно: когда сохранение у нас происходит во внешний источник (к примеру, база данных),
где необходимо ожидать ответ и время этого ожидания не зависит от нашего кода, то предпочтительнее
использовать асинхронный вариант этого метода, чтобы отпустить поток на другие нужды,
а потом когда придет ответ продолжить работу с ответом уже этим или другим потоком.

А что на счет асинхронного варианта AddAsync(), зачем-то он нужен, зачем ожидать
ответ, разве добавление не происходит в памяти или я какой-то частный случай не знаю?
    


Ответы

Ответ 1



Согласно докам This method is async only to allow special value generators, such as the one used by 'Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo', to access the database asynchronously. For all other cases the non async method should be used.

Комментариев нет:

Отправить комментарий