나는 가지고 있었다 비슷한 문제 얼마 전 AutoFixture 및 EntityFramework를 사용했습니다.내 솔루션은 AutoFixture에 확장을 추가하여 몇 번의 재귀를 통해 SUT를 구축하는 것이었습니다.해당 확장은 최근 AutoFixture에 채택되었습니다.
그러나 귀하의 질문은 AutoFixture가 실제로 가능한 재귀 데이터 구조를 구성하는 방법이 아니라 재귀 없이 도메인 모델을 만드는 방법에 관한 것이라는 것을 이해합니다.
첫째, 트리 또는 그래프 구조가 있습니다.여기서 재귀를 제외한 모든 것은 느슨하게 결합된 노드 ID를 통한 간접 참조를 의미합니다.연관을 정의하는 대신 쿼리별로 트리를 순회하거나 전체를 캐시하고 노드 키 조회별로 순회해야 하는데, 이는 트리 크기에 따라 실용적이지 않을 수 있습니다.여기에서는 EF가 귀하를 위해 작업을 수행하도록 하는 것이 매우 편리합니다.
다른 일반적인 구조는 사용자/게임 시나리오와 유사한 양방향 탐색 구조입니다.여기서는 탐색 흐름을 한 방향으로 잘라내는 것이 그다지 불편하지 않은 경우가 많습니다.예를 들어 게임에서 팀으로 한 방향을 생략하는 경우에도 해당 게임의 모든 팀을 쉽게 쿼리할 수 있습니다.그래서:사용자는 게임 목록과 팀 목록을 가지고 있습니다.팀에는 게임 목록이 있습니다.게임에는 탐색 참조가 없습니다.특정 게임에 대한 모든 사용자를 얻으려면 다음과 같이 작성할 수 있습니다.
var users = (from user in DataContext.Users
from game in user.Games
where game.Name == 'Chess'
select user).Distinct()