Страницы

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

понедельник, 18 марта 2019 г.

DbSet.Add() vs DbSet.AddAsync()

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


Ответ

Согласно докам
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.

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

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