【问题标题】:Self referencing loop detected when serializing objects in ASP.NET Web API在 ASP.NET Web API 中序列化对象时检测到自引用循环
【发布时间】:2014-08-16 09:25:20
【问题描述】:

当我将我的对象序列化为 JSON 时,我首先使用 MVC 5 Web API 和 Entity Framework 6 数据库有史以来最好的模型是什么?

我找到了:

  1. 使用 [JsonIgnore] 但每次更新模型表单数据库时都需要添加它
  2. 从集合中删除虚拟
  3. 创建新的数据传输对象 (DTO) 层
  4. 使用 JsonSerializerSettings(不适用于我,因为它会生成“$id”、“$ref”)

【问题讨论】:

    标签: c# json.net asp.net-web-api


    【解决方案1】:

    我猜你知道答案是“视情况而定”对吧?然而,根据我的经验,我得出的结论是,我们通常会使用 DTO 层。它对于解决无数此类问题很有用,而其他解决方案仅解决此特定实例。在其他情况下,我们不得不扁平化对象(Employee.CompanyName 而不是 Employee.Company.Name)和其他类似问题。缺点是您不能直接从您的 API 中公开 IQueryable,尽管我们做了一些翻译表达式树的操作。所以基本上我想这是一个你是否关心直接从服务公开的 IQueryable 的问题。

    【讨论】:

      猜你喜欢
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多