2013-02-04 19 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メソッドで、対象のプロパティのみを含むビューモデルを返すようにします。

関連する問題