5
在返回Web Api中的任何结果之前,我禁用了EF5中的延迟加载和代理创建。一切正常。然而,当我开始给其他Include()
实体预先抓取,一些JSON对象是这样的:
{
$ref: "14"
},
.. correct objects ..
{
$ref: "6"
},
..
这是什么"$ref"
这是包含在结果列表中?
在返回Web Api中的任何结果之前,我禁用了EF5中的延迟加载和代理创建。一切正常。然而,当我开始给其他Include()
实体预先抓取,一些JSON对象是这样的:
{
$ref: "14"
},
.. correct objects ..
{
$ref: "6"
},
..
这是什么"$ref"
这是包含在结果列表中?
它来自JSON.NET序列化程序。它保留了对象引用。看看following blog post
。我想你的对象图中有一些循环引用,并且JSON.NET正在竭尽全力将这个EF结构序列化而不会崩溃(这是大多数JSON序列化器无论如何都会做的)。这不是一个标准。
个人建议:从不序列化您的EF实体。始终定义视图模型并让您的Web API方法返回仅包含您感兴趣的属性的视图模型。