我有一个可怕的嵌套实体框架结构。一个 Schedule 包含多个默认值和多个覆盖。每个默认/覆盖都有一个对计划的引用和一个“类型”。类型具有对它所属的任何默认值或覆盖的引用。这很混乱,但我认为这可能是我能做的唯一方法。
这些数据最终以 Breeze 实体的形式出现在浏览器中。在将它们保存回服务器时进行处理之前,我必须将它们转回 JSON,这毫不奇怪地触发了可怕的“未捕获的类型错误:将循环结构转换为 JSON”。
现在有许多非常好的脚本可以删除这些圆形结构。但是它们似乎都用某种占位符替换了循环引用,因此可以将它们重新创建为对象。但是当然 Entity Framework 不能识别这些,所以不能使用它们。
在这一点上,我不知道该怎么做。简单地删除循环引用而不是替换它们似乎没有帮助,因为它可能导致结构中重要数据的缺失。
我还尝试更改我的 EF 查询以仅返回具体所需的数据,但它坚持给我绝对的一切,即使延迟加载设置为 false 并且我的查询中没有 .Include 语句。但我觉得这是在解决错误的问题,因为我们一定会在某些时候想要处理复杂的数据。
有没有其他办法解决这个问题?
编辑:我通过调查对象并按名称删除圆形属性暂时解决了这个问题。但如果可能的话,我仍然想要一个通用的解决方案。