在Web Api中返回任何结果之前,我禁用了EF5中的延迟加载和代理创建。一切正常。但是,当我开始尝试Include()获取其他实体时,一些JSON对象如下所示:
Include()
{ $ref: "14" }, .. correct objects .. { $ref: "6" }, ..
这是什么"$ref"这是包含在结果列表中?
"$ref"
它来自JSON.NET序列化器。它保留对象引用。看一下following blog post。我猜想您的对象图中有一些循环引用,并且JSON.NET最好是在不崩溃的情况下不遗余力地序列化此EF结构(这是大多数JSON序列化程序将要做的事情)的最佳方法。这不是一个标准。
following blog post
个人建议: 切勿 序列化您的EF实体。始终定义视图模型,并让您的Web API方法返回仅包含您感兴趣的属性的视图模型。