0
  1. Web APIコントローラは、Entity Frameworkデータベースファーストモデルでストアドプロシージャを呼び出します。ASP.Net Web API 2シリアル化されたJSONエラー:「自己参照ループ」

  2. ストアドプロシージャは、SQL Serverデータベースにエントリを挿入し、その新しく作成されたエントリを返します。

  3. ストアドプロシージャの関数インポートがTagDTO作成したカスタムである複合型を返すように設定されている

しかし(これDTOはTasksModel.tt内で作成された)、IこのAPIメソッドが呼び出されると、エラー "自己参照ループが検出されました"を引き続き取得してください。

私は以下から何が欠けていますか?ストアドプロシージャは、データを正しく挿入します。

enter image description here

enter image description here

TagDTOクラス:

enter image description here

APIのコントローラーコード:

enter image description here

答えて

1

シュルを作りますeを返す前に、dbコンテキストからオブジェクトを削除してください。私はこれがあなたのDBコンテキストに次のEvictメソッドを追加することによって行うことができると信じています。これにより、そのオブジェクトの即値のみがシリアル化されるようになり、ナビゲーションプロパティをシリアル化しようとはしません。

// this goes inside of your Context Object, parent class may already implement it 
     public void Evict(object entity) 
     { 
      Entry(entity).State = EntityState.Detached; 
     } 

そして、このようにそれを使用します。

dbContext.Evict(entityFrameworkObject); 
関連する問題