У меня был аналогичная проблема с AutoFixture и EntityFramework некоторое время назад.Мое решение состояло в том, чтобы добавить расширение к AutoFixture, которое позволяет вам создавать SUT с несколькими рекурсиями.Это расширение недавно было внедрено в AutoFixture.
Но я понимаю, что ваш вопрос был не о том, как заставить AutoFixture создавать рекурсивные структуры данных, что действительно возможно, а о том, как создавать модели предметной области без рекурсии.
Во-первых, у вас есть древовидные или графические структуры.Здесь все, что угодно, кроме рекурсии, означало бы косвенное использование слабо связанных идентификаторов узлов.Вместо определения ассоциации вам пришлось бы просматривать дерево запрос за запросом или кэшировать все это целиком и выполнять поиск по ключу узла, что может быть непрактичным в зависимости от размера дерева.Здесь очень удобно заставить EF выполнять всю работу за вас.
Другая распространенная структура - это двусторонняя навигационная структура, аналогичная вашему пользовательскому / игровому сценарию.Здесь часто бывает не так уж и неудобно ограничить навигационный поток в одном направлении.Если вы опустите одно направление, скажем, от игры к команде, вы все равно сможете легко запросить все команды для данной игры.Итак:У пользователя есть список игр и список команд.У команды есть список игр.Игры не имеют навигационных ссылок ни на те, ни на другие.Чтобы привлечь всех пользователей к определенной игре, вы могли бы написать что-то вроде:
var users = (from user in DataContext.Users
from game in user.Games
where game.Name == 'Chess'
select user).Distinct()