Похоже, что это функция поведения Fixup шаблона POCO в сочетании с отложенной загрузкой.
Поскольку объект уже был загружен с помощью Single, последующие операции, похоже, происходят в памяти, а не в базе данных,По умолчанию метод Fixup выполняет вызовы Contains (), когда все останавливается, в то время как 10 тысяч элементов извлекаются, инициализируются как прокси и оцениваются в памяти.
Я пытался изменить это Contains ()в Where (Function (x) x.Id = id) .Count> 0 (будет логически делать то же самое, но пытаясь форсировать быструю операцию с БД вместо медленной в памяти).Запрос все еще выполнялся в памяти и так же медленно.
Я переключился с POCO на стандартный EntityGenerator, и эта проблема просто исчезла без каких-либо других изменений.Скажите, что вы будете о шаблонах / практиках, но это неприятная проблема - я не замечал этого, пока не переключился с поддельных и небольших тестовых баз данных на полноразмерную базу данных.Entity Generator сохраняет день сейчас.