Все ли методы в репозиториях должны быть асинхронными?
У меня есть репозитории для доменных моделей с CRUD операциями. Нужно ли все эти операции делать асинхронными или нужно ограничиться только GetAsync(), DeleteAsync()?
Есть ли вообще польза от этих асинхронных репозиториев?
Но как насчет методов удаления, добавления и изменения. Они же все равно не будут выполнены до применения SaveCahnges().
Есть ли смысл делать их асинхронными?
FairyFox5700, у Entity Framework Core есть методы типа AddAsync и DeleteAsync для DbSet. В описании к ним говорится что они для каких-то специфических хранилищ. Если у вас классическая sql база, то нужно использовать пары: Add + SaveChangesAsync или Delete + SaveChangesAsync. В момент вызова Add изменится локальная версия и это произойдет синхронно. В момент вызова await SaveChangesAsync изменения отправятся по сети на СУБД и так как это асинхронный вызов поток будет возвращен обратно в пул потоков и сможет быть использован под другую задачу. Когда сетевая операция закончится из пула будет снова взят поток чтобы продолжать выполнять полезную работу. А если бы был синхронный вызов SaveChanges то поток бы заблокировался на время выполнения сетевой операции и простаивал зря.