Entity Framework 4 を使用した MVC-3 (RC1) アプリケーションがあります。
コントローラー アクションから JSON オブジェクトを返したいと考えています。このオブジェクトは、明らかに参照を返す他のオブジェクトによって参照されます。
したがって、次の循環参照エラーが発生します。
「/」アプリケーションでサーバー エラーが発生しました。
タイプ 'Application.Models.ReferenceObject' のオブジェクトをシリアル化中に、循環参照が検出されました。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.InvalidOperationException: タイプ 'Application.Models.ReferenceObject' のオブジェクトをシリアル化中に循環参照が検出されました。
NB: Application & ReferenceObjectは明らかに実際の名前空間 / オブジェクトの代替です。
Stack Overflow: Circular reference exception when serializing LINQ to SQL classesによると、これは JSON.Net を使用して克服できます。ただし、これを回避し、代わりにシリアル化されるオブジェクトから問題のある参照プロパティを除外しようとします。
どういう意味ですか?
私はこのようなことをしたい:
IList<ReferenceObject> list = Repository.GetReferenceObjects();
return Json(list.**<method>**("ObjectsReferencingThis"));
where**<method>**
メソッドとは反対のことを行うObjectQuery(Of T).Include
メソッドでありObjectsReferencingThis
、循環参照の原因となっているプロパティです。
注意:これらのプロパティを削除したり、POCO を作成したりしたくはありません。これは Json のシリアル化にのみ影響するためです。
誰でも助けてください。
:)