Dot-Net

為什麼 Web Api 返回帶有“$ref=”的空 json 結果?

  • August 22, 2019

在 Web Api 中返回任何結果之前,我在 EF5 中禁用了延遲載入和代理創建。一切正常。但是,當我開始對Include()其他實體進行渴望獲取時,一些 JSON 對像看起來像這樣:

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

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

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

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

引用自:https://stackoverflow.com/questions/14682211