일대 다로 관련된 2 개의 엔티티가 있습니다.
public class Restaurant {
public int RestaurantId {get;set;}
public string Name {get;set;}
public List<Reservation> Reservations {get;set;}
...
}
public class Reservation{
public int ReservationId {get;set;}
public int RestaurantId {get;set;}
public Restaurant Restaurant {get;set;}
}
내 API를 사용하여 예약 된 레스토랑을 얻으려고하면
var restaurants = await _dbContext.Restaurants
.AsNoTracking()
.AsQueryable()
.Include(m => m.Reservations).ToListAsync();
.....
객체에 서로 참조가 포함되어 있기 때문에 응답으로 오류가 발생합니다. 별도의 모델을 작성 하거나 NewtonsoftJson 구성을 추가 하도록 권장 하는 관련 게시물이 있습니다.
문제는 별도의 모델을 만들고 싶지 않으며 두 번째 제안이 도움이되지 않는다는 것입니다. 주기적인 관계없이 데이터를로드하는 방법이 있습니까? *
System.Text.Json.JsonException : 지원되지 않는 가능한 오브젝트주기가 발견되었습니다. 주기 때문이거나 오브젝트 깊이가 최대 허용 깊이 인 32보다 큽니다. System.Text.Json.ThrowHelper.ThrowInvalidOperationException_SerializerCycleDetected (Int32 maxDepth)에서 System.Text.Json.JsonSerializer.Write (Utf8JsonWriter writer) System.Text.Json.JsonSerializer.WriteAsyncCore (Stream utf8Json, Object value, Type inputType, JsonSerializerOptions 옵션, CancellationToken CancellationToken)에서 System.Text.JsonSerializerOptions 옵션, WriteStack 및 state)의 Int32 originalWriterDepth, Int32 flushThreshold, JsonSerializerOptions 옵션, WriteStack 및 상태). Microsoft.AspNetCore.Mvc에서 WriteResponseBodyAsync (OutputFormatterWriteContext 컨텍스트, Encoding selectedEncoding).
*