Tôi có 2 thực thể có liên quan từ một đến nhiều
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;}
}
Nếu tôi cố gắng để có được nhà hàng với đặt phòng bằng api của tôi
var restaurants = await _dbContext.Restaurants
.AsNoTracking()
.AsQueryable()
.Include(m => m.Reservations).ToListAsync();
.....
Tôi nhận được lỗi trong phản hồi, bởi vì các đối tượng chứa các tham chiếu cho nhau. Có những bài viết liên quan đề xuất tạo mô hình riêng biệt hoặc thêm cấu hình NewtonsoftJson
Vấn đề là tôi không muốn tạo mô hình riêng biệt và đề xuất thứ 2 không giúp được gì. Có cách nào để tải dữ liệu mà không cần quan hệ theo chu kỳ không? *
System.Text.Json.JsonException: Một chu kỳ đối tượng có thể được phát hiện không được hỗ trợ. Điều này có thể là do một chu kỳ hoặc nếu độ sâu đối tượng lớn hơn độ sâu tối đa cho phép là 32. tại System.Text.Json.ThrowHelper.ThrowInvalidOperationException_SerializerCyclDetected (Int32 maxDepth) tại System.Text.Json.JsonSer , Int32 gốcWriterDepth, Int32 flushThrưỡng, JsonSerializerOptions tùy chọn, WriteStack & state) tại System.Text.Json.JsonSerializer.WriteAsyncCore (Stream utf8Json, Giá trị đối tượng, loại bỏ tùy chọn của mình WriteResponseBodyAsync (bối cảnh đầu raFormatterWriteContext, mã hóa được chọn Mã hóa) tại Microsoft.AspNetCore.Mvc.
*