为什么网络阿比返回空的JSON结果与" $ REF ="? [英] Why is the Web Api returning empty json results with "$ref="?

查看:259
本文介绍了为什么网络阿比返回空的JSON结果与" $ REF ="?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我禁用延迟加载和代理创造EF5返回任何结果在Web API之前。一切运行良好。但是,当我开始包括()其他实体预先抓取,一些JSON对象是这样的:

I disabled lazy loading and proxy creation in EF5 before returning any results in the Web Api. Everything worked fine. However, when i start to Include() other entities for eager fetching, some of the JSON objects look like this:

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

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

What is this "$ref" that gets included in the list of results?

推荐答案

这是一个从JSON.NET串行到来。这是preserving对象引用。看看的<一个href="http://johnny$c$c.com/2012/04/10/serializing-circular-references-with-json-net-and-entity-framework/"><$c$c>following博客文章 。我猜你有一些循环引用您的对象图,并JSON.NET是干什么的,最好在绝望的努力没有崩溃(这是大多数JSON序列化会做反正)序列化此EF结构。这不是一个标准,但。

It's coming from the JSON.NET serializer. It's preserving object references. Take a look at the following blog post. I guess you have some circular references in your object graph and JSON.NET is doing it's best in a desperate effort to serialize this EF structure without crashing (which is what most JSON serializers would do anyway). It's not a standard though.

个人建议:永远序列化的EF实体。始终定义视图模型,有你的Web API方法返回一个只包含您感兴趣的属性视图模型。

Personal advice: never serialize your EF entities. Always define view models and have your Web API methods return view models containing only the properties you are interested in.

这篇关于为什么网络阿比返回空的JSON结果与&QUOT; $ REF =&QUOT;?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆