一尘不染

为什么Web Api用“ $ ref =”返回空的json结果?

json

在Web
Api中返回任何结果之前,我禁用了EF5中的延迟加载和代理创建。一切正常。但是,当我开始尝试Include()获取其他实体时,一些JSON对象如下所示:

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

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


阅读 260

收藏
2020-07-27

共1个答案

一尘不染

它来自JSON.NET序列化器。它保留对象引用。看一下following blog post。我猜想您的对象图中有一些循环引用,并且JSON.NET最好是在不崩溃的情况下不遗余力地序列化此EF结构(这是大多数JSON序列化程序将要做的事情)的最佳方法。这不是一个标准。

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

2020-07-27