Параллелизм на a ADO.NET звоните
У меня есть проект, в котором хранимая процедура вызывается на SQL Server 2014.
Я заполняю
DataTable
объект с результатом хранимой процедуры.Это вызов выполняется в базовом классе и после заполнения он запускает
Parallel.ForEach()
на DataTable
. В том virtual
процессов (каждый объект переопределяет метод базового заполнить все классы сущностей) данные вам установить объекты в List<Entity>
. Когда Parallel.ForEach()
завершается я вызываю виртуальный метод который сущность также переопределяет это отмечает конец загрузки данных и LIST<>
устанавливается в кэш. Однако иногда я вижу, что некоторые из сущностей в List<>
являются NULL
- Как это возможно? Чего мне не хватает, чтобы все строки были установлены в соответствующие значения?Что я уже пробовал:
Я пробовал параллель.ForEach с опциями и без них. Один из вариантов устанавливает одновременную загрузку максимум 1 записи (фактически обработка на основе строк).
Когда я использую обычный foreach, я не вижу такого поведения.