当前位置: 首页 > 面试题库 >

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

长孙阳泽
2023-03-14
问题内容

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

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

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


问题答案:

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

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



 类似资料:
  • 本文向大家介绍当C#中的结果为空时,LINQ返回什么?,包括了当C#中的结果为空时,LINQ返回什么?的使用技巧和注意事项,需要的朋友参考一下 语言集成查询(LINQ)是基于直接将查询功能集成到C#语言中的一组技术的名称。 您可以在C#中为SQL Server数据库,XML文档,ADO.NET数据集以及支持IEnumerable或通用IEnumerable <T>接口的任何对象集合编写LINQ查询

  • 我有以下表格结构: 1-课程(course_id、course_nam、语言、course_price、create_date、average_rating、course_description、certifica_price、course_creator_id) 2-学生(学生证、钱包) 3-折扣(折扣id、折扣课程id、允许的许可课程id、开始日期、结束日期、百分比) 4-报名(student

  • 问题内容: 我最近一直在搞弄api,发现有些奇怪的地方。 返回一个对象。输出 但是,如果将其写为: 这是您可以访问标题属性的标准。 所以我的问题是:为什么要在对象文字中返回一个promise,但是如果刚返回则返回一个值? 问题答案: 为什么要兑现承诺? 因为您在所有标头到达后立即收到。调用使您对尚未加载的http响应的正文有了另一个保证。另请参见[为什么来自JavaScriptfetch API的

  • 我经常看到函数或方法返回Result 换句话说,这种返回不会返回任何内容或错误。为什么使用会导致这种情况,而不是一种选择?我认为这个选项更合适,因为在我们的示例中,它实际上不返回任何值或值——无或错误。

  • 问题内容: 我编写了一些使用JSON编码的ASP.NET Web服务,例如: 返回的JSON是: 为什么将参数命名为?我可以控制吗?说,要? 问题答案: 这是一项“安全性”功能,可防止在Eval语句内的javascript中直接执行返回的JSON。或者类似的东西。 有关此主题的更多信息:http : //encosia.com/a-breaking-change-between-versions-

  • 本文向大家介绍Math.min() < Math.max() 返回结果是什么?为什么?相关面试题,主要包含被问及Math.min() < Math.max() 返回结果是什么?为什么?时的应答技巧和注意事项,需要的朋友参考一下 返回,因为返回,返回。 猜测的实现方式大致如下: 接受不定项参数,当参数只有一个的时候,例如,那么这个需要和(js中最小的数)进行比较,所以结果返回,哪怕传入的值再小,单个