我有两个实体,它们作为一个对多个实体相关联
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();
.....
我收到响应错误,因为对象包含对彼此的引用。 有相关的职位,推荐 创建独立的模型 或者加入 Newton softJson 配置
问题是,我不想创建单独的模型和第二个建议没有帮助。 有没有不循环关系的数据加载方法? *
System.Text.JsonJsonException: 检测到可能的对象循环 这可能是由于循环或者 物体深度大于最大允许深度32.at ThrowHelper.ThrowInvalidOperationException _ SerializerCycleDetected (Int32 在 System.Text.Json.JsonSerializer. Write (Utf8JsonWriter 作者,Int32原创作者深度, JsonSerializerOptions 选项、 WriteStack & state) 系统。文本。 Json.JsonSerializer。 WriteAsyncCore (Stream utf8Json,Object 值,键入 inputType,JsonSerializerOptions 选项, 取消令牌取消令牌) 格式化。 SystemTextJsonOutputFormatter。 WriteResponseBodyAsync (OutputFormatterWriteContext 上下文,编码选择编码) 格式化。 SystemTextJsonOutputFormatter。 WriteResponseBodyAsync (OutputFormatterWriteContext 上下文,编码选择编码) 基础设施.ResourceInvoker.g _ _ Await | 29 _ 0[ TFilter,TFilterAsync ](ResourceInvoker 调用程序,任务 lastTask,状态下一步,范围作用域,对象状态,布尔值 完成) 基础设施。资源调用器。重新抛出(结果执行 上下文) 结果下一步[ TFilter,TFilterAsync ](状态 & 下一步,作用域和作用域,对象和状态,布尔值和完成)在 基础设施。资源调用器。调用结果过滤器()
*