ASP.NET Web APIを使用したJSONシリアル化中にEntity Framework 6で循環参照されるのを避ける方法はありますか?EF6:循環参照を回避するにはどうすればよいですか?
まず、Entity Framework 6のデータベースであるedmx(Entity Data Model)ファイルを生成しました。私はASP.NET Web APIを使ってAPIを構築しようとしています。私のコントローラで私のJSONオブジェクトを返そうとすると循環参照のために直列化の実行時例外が発生します。
実際にデータベースとエンティティを再確認すると、自分のエンティティの1つに、以前のエンティティのリストを含む別のエンティティがリストに含まれています。私は作者を含む書籍エンティティを持っており、各著者エンティティには書籍のリストが含まれているとしましょう。これは相対的なデータベースでは一般的ですが、JSONのシリアル化では解決できません(または.NETシリアライザでは解決できません)。
データベースを変更したくないのですが、間違ったリストをエンティティまたはedmxファイルに分割する準備ができました。私に何ができる?
を私はすでに新しいモデルやエンティティを作成し、マッピングツール(http://www.codeproject.com/Articles/292970/Avoiding-Circular-Reference-for-Entity-in-JSON-SerまたはPluralsightのショーンWildermuthによってによって説明ソリューション)を使用して、で構成されて解決策を試してみました:私は試してみました何
。
このソリューションは、実際のソリューションよりも回避策のように聞こえます。 JSONシリアライザに循環参照を引き起こす原因、シリアル化できるものとシリアル化する必要があるもの、シリアル化できないものを正しく伝えるには、edmxファイルまたはEntity Frameworkに何かが存在するはずです。
を仮想を削除し、そうすることができますするために、この重複としての質問この場合は、重複する回答にリンクしてください。すでに試したこと以外は何も見つかりませんでした。 –