Я нашел проблему, о которой спрашивал, и это была моя вина. Я кодировал переполнение стека: я преобразовал некоторый код в метод расширения, переименовал его, чтобы он соответствовал методу расширения Linq, который он вызвал, и поэтому он просто вызвал его саморекурсивно.
Уроки, которые можно извлечь из этого:
1: «выбор» не нарушен .
Я был слишком быстр, чтобы обвинить фреймворк из-за его плохой репутации.
2: Но у него действительно было патологически общее и полностью вводящее в заблуждение сообщение об ошибке.
В тех случаях, когда сообщение об ошибке является настолько плохим, хорошая техника отладки состоит в том, чтобы попытаться выяснить, что делает, а что не вызывает ошибку. В моем случае прорыв произошел, как только я заметил, что это не «тестовый прогон», который провалился, это были только прогоны, содержащие тесты базы данных Sql - тест предметного объекта и фиктивного репозитория мог выполняться просто отлично, поэтому пришлось быть что-то о коде, который он выполнял. И что отладчик вступит в тесты. По этим ужасным ошибкам я предположил, что это далеко не зашло.