ฉันมี 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 ที่ , Int32 originalWriterDepth, Int32 flushThreshold, ตัวเลือก JsonSerializerOptions, WriteStack & State) ที่ System.Text.Json.Json.JsonSerializer.WriteAsyncCore (สตรีม utf8Json, ค่าออบเจ็กต์, อินพุตชนิด, JsonSerializerOptions ตัวเลือก WriteResponseBodyAsync (บริบท OutputFormatterWriteContext, การเข้ารหัสการเข้ารหัสที่เลือก) ที่ Microsoft.AspNetCore.Mvc
* * * *