0
  1. 웹 API 컨트롤러는 Entity Framework 데이터베이스 우선 모델에서 저장 프로 시저를 호출합니다.ASP.Net 웹 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 메서드를 추가하여이 작업을 수행 할 수 있다고 생각합니다. 이렇게하면 해당 개체에 대한 즉시 값만 serialize되고 탐색 속성은 serialize하지 않습니다.

// 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);