1対多に関連する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構成を追加することを推奨する関連する投稿があります
問題は、別のモデルを作成したくなく、2番目の提案が役に立たなかったことです。循環関係なしにデータをロードする方法はありますか?*
System.Text.Json.JsonException:サポートされていない可能性のあるオブジェクトサイクルが検出されました。これは、サイクルが原因であるか、オブジェクトの深度が最大許容深度である32よりも大きい場合に発生します。System.Text.Json.ThrowHelper.ThrowInvalidOperationException_SerializerCycleDetected(Int32 maxDepth)at System.Text.Json.JsonSerializer.Write(Utf8JsonWriter writer 、Int32 originalWriterDepth、Int32 flushThreshold、JsonSerializerOptionsオプション、WriteStack&状態)System.Text.Json.JsonSerializer.WriteAsyncCore(Stream utf8Json、Object value、Type inputType、JsonSerializerOptions options、CancellationToken cancelToken)at Microsoft.AspNetCore.Mvc.Formatters.SystemTextJ Microsoft.AspNetCore.MvcのWriteResponseBodyAsync(OutputFormatterWriteContext context、Encoding selectedEncoding)。
*