Я понимаю, почему в EF есть ToListAsync или SaveChangesAsync - потому что он ожидает выполнения операции БД. Но AddAsync просто возвращает Task.FromResult - так почему же существует метод AddAsync? И зачем мне его использовать?
ToListAsync
SaveChangesAsync
AddAsync
Task.FromResult
Начинает отслеживать заданную сущность и любые другие достижимые сущности, которые еще не отслеживаются, в состоянии Добавления, так что они будут вставлены в базу данных при вызове SaveChanges ().
https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbcontext.addasync?view=efcore-2.1
Из документации :
Этот метод является асинхронным только для того, чтобы позволить специальным генераторам значений, таким как тот, который используется Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo ', для асинхронного доступа к базе данных. Для всех остальных случаев следует использовать не асинхронный метод.
SqlServerValueGenerationStrategy.SequenceHiLo
Последовательный шаблон hi-lo, в котором блоки идентификаторов выделяются с сервера и используются на стороне клиента для генерации ключей.
См. Также Что такое алгоритм Hi / Lo?