Тайм-аут функции Azure с Entity Framework - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь создать базовую функцию таймера, которая записывает данные в базу данных с использованием Entity Framework, однако я получаю сообщение об ошибке:

System.Data.SqlClient: с этой командой уже есть открытый DataReader, который должен быть сначала закрыт.

Эта ошибка возникает, когда я звоню context.SaveChanges();

1 Ответ

0 голосов
/ 11 марта 2019

@ thiccfire

Entity Framework поддерживает только одну активную команду для контекста за раз.

Это может произойти, если вы выполняете запрос, пока вы еще перебираете набор результатов из другого запроса,Хотя вы не предоставили пример кода, поэтому неясно, откуда это происходит.

Одна вещь, которая может вызвать это, - ленивая загрузка, запускаемая при переборе результатов некоторого запроса.

Этоможет быть легко решена путем разрешения MultipleActiveResultSets = true в строке подключения.Добавьте к части поставщика строку подключения (где указаны Источник данных, Исходный каталог и т. Д.).

Другой способ заключается в том, что вы можете материализовать свой первый запрос в коде, выполнив .ToList (), а затемВы можете использовать его для дальнейшей обработки.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...