2013-02-04 55 views
5

在返回Web Api中的任何结果之前,我禁用了EF5中的延迟加载和代理创建。一切正常。然而,当我开始给其他Include()实体预先抓取,一些JSON对象是这样的:

{ 
$ref: "14" 
}, 
.. correct objects .. 
{ 
$ref: "6" 
}, 
.. 

这是什么"$ref"这是包含在结果列表中?

回答

14

它来自JSON.NET序列化程序。它保留了对象引用。看看following blog post。我想你的对象图中有一些循环引用,并且JSON.NET正在竭尽全力将这个EF结构序列化而不会崩溃(这是大多数JSON序列化器无论如何都会做的)。这不是一个标准。

个人建议:从不序列化您的EF实体。始终定义视图模型并让您的Web API方法返回仅包含您感兴趣的属性的视图模型。

相关问题