В настоящее время я пишу простое веб-приложение, которое использует базу данных ms sql для хранения данных. Сейчас я пытаюсь настроить свой уровень бизнес-логики c и, таким образом, структурировать его наилучшим образом.
В настоящее время все мои вызовы выполняются с помощью Linq, и на самом деле ни один из них не является асинхронным , Я довольно новичок в асинхронном программировании и, как правило, любопытно узнать, для каких запросов мне следует использовать асинхронные вызовы.
Насколько я понимаю, имеет смысл использовать асинхронные вызовы базы данных, потому что это освобождает память в моем основном потоке и не блокирует пользовательский интерфейс. Кроме того, асинхронные вызовы могут выполняться одновременно, что означает, что одновременно может быть выполнено больше транзакций.
Однако учтите, что я асинхронно добавляю несколько сущностей в свой контекст и использую метод SaveChangesAsync()
для завершения моего контекста. Разве не избыточно иметь несколько AddAsync()
методов в моем контексте, потому что SaveChangesAsync()
все равно будет запускать все асинхронно?
Наконец, из того, что я прочитал и увидел, многие люди предпочитают использовать асинхронные вызовы базы данных. То есть скорее правило, чем исключение.
Если да, то в каких случаях мне следует избегать асинхронных вызовов базы данных, какие общие правила следует соблюдать при добавлении асинхронных вызовов в уровень бизнес-логики c?