2017-03-01 15 views
4

私は、.NET Core Web APIとEntity Framework Coreを使用した自己参照に関連していると推測しています。私が追加したときに私のWeb APIが窒息し始めました。いくつかのナビゲーションプロパティが含まれています。.NET Core Web APIで自己参照ループを停止するにはどうすればよいですか?

古いWeb APIの解決策のように見えますが、.NET Core Web APIで同じことを実装する方法がわかりません(まだ初期の学習段階です)。

古いソリューションは、Global.asaxのののApplication_Start()でこれを貼りました:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize; 

私は、これがスタートアップのConfigureService()メソッドで処理されますが、私はそこを超えて多くを知らないと思います。

また、この問題を処理するより適切な方法がありますか?

+1

からこれを得た、私は同意@BradleyDotNET、あなたのDBをマッピング – BradleyDotNET

+0

円形ループ(ないストレートEFオブジェクト)を持っていないAPIオブジェクトを使用しますAPI呼び出し側がフォーカスしているオブジェクトをワイヤリングする。ワイヤーを介したDBはソフトウェア開発のための反パターンです(皮肉なことに、多くの人が「REST」をやっているためのgoto解決策です) –

+0

私のワイヤーモデルは私のモデルと同じに見えるのでDRY原理に違反しているようですEFによって。 –

答えて

14

さて...私はついにこれについていくつかの参考資料を見つけました。解決策は以下のとおりです。

public void ConfigureServices(IServiceCollection services) 
{ 
    ... 

    services.AddMvc() 
     .AddJsonOptions(
      options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore 
     ); 

    ... 
} 

私が話し一般here

関連する問題