在返回Web Api中的任何结果之前,我禁用了EF5中的延迟加载和代理创建。一切正常。但是,当我开始对其他实体进行Include()
渴望获取时,一些JSON对象如下所示:
{
$ref: "14"
},
.. correct objects ..
{
$ref: "6"
},
..
结果列表中包含的
"$ref"
是什么?
最佳答案
它来自JSON.NET序列化器。它保留对象引用。看看 following blog post
。我猜您在对象图中有一些循环引用,而JSON.NET最好是在不崩溃的情况下不遗余力地序列化此EF结构(这是大多数JSON序列化程序将要做的事情)的最佳方法。这不是一个标准。
个人建议:请勿序列化您的EF实体。始终定义 View 模型,并让您的Web API方法返回仅包含您感兴趣的属性的 View 模型。
关于.net - 为什么Web Api使用 “$ref=”返回空的json结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14682211/