Как исправить ошибку A second operation was started on this context instance before a previous operation completed?

На работе дали тестовое задание, чтобы я написал consumer для кафки на дотнет6, затем полученный стрим данных сразу же записывать в базу данных, написал код, при симуляции получении данных, когда данные отправлял данные по одному спокойно все записывалось в таблицу, но когда отправил 100 данных подряд программа сломалась.

Текст ошибки:
System.InvalidOperationException: "A second operation was started on this context instance before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913."

Использовал efcore. Можете посоветовать, как поступать ? Я не могу понять.
  • Вопрос задан
  • 2281 просмотр
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
По сообщению очевидно, что ты начал вторую операцию на ef-овском DbContext до того, как закончилась предыдущая.
Такое обычно случается, когда ты пытаешься работать с DbContext параллельно из нескольких потоков или забыл написать await у SaveChanges. (это в ошибке и написано, буквально)
Также в сообщении об ошибке дана ссылка на статью, которую следует прочитать, чтобы не допускать таких ошибок в будущем.

Kafka, Postgres, и "100 данных подряд" тут ни при чём.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы