5
在返回Web Api中的任何結果之前,我禁用了EF5中的延遲加載和代理創建。一切正常。然而,當我開始給其他Include()
實體預先抓取,一些JSON對象是這樣的:
{
$ref: "14"
},
.. correct objects ..
{
$ref: "6"
},
..
這是什麼"$ref"
這是包含在結果列表中?
在返回Web Api中的任何結果之前,我禁用了EF5中的延遲加載和代理創建。一切正常。然而,當我開始給其他Include()
實體預先抓取,一些JSON對象是這樣的:
{
$ref: "14"
},
.. correct objects ..
{
$ref: "6"
},
..
這是什麼"$ref"
這是包含在結果列表中?
它來自JSON.NET序列化程序。它保留了對象引用。看看following blog post
。我想你的對象圖中有一些循環引用,並且JSON.NET正在竭盡全力將這個EF結構序列化而不會崩潰(這是大多數JSON序列化器無論如何都會做的)。這不是一個標準。
個人建議:從不序列化您的EF實體。始終定義視圖模型並讓您的Web API方法返回僅包含您感興趣的屬性的視圖模型。