2013-02-04 100 views
5

在返回Web Api中的任何結果之前,我禁用了EF5中的延遲加載和代理創建。一切正常。然而,當我開始給其他Include()實體預先抓取,一些JSON對象是這樣的:

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

這是什麼"$ref"這是包含在結果列表中?

回答

14

它來自JSON.NET序列化程序。它保留了對象引用。看看following blog post。我想你的對象圖中有一些循環引用,並且JSON.NET正在竭盡全力將這個EF結構序列化而不會崩潰(這是大多數JSON序列化器無論如何都會做的)。這不是一個標準。

個人建議:從不序列化您的EF實體。始終定義視圖模型並讓您的Web API方法返回僅包含您感興趣的屬性的視圖模型。

相關問題