>

API를 호출하여 JSON 형식의 결과 유형을 얻기 위해 저장 프로 시저를 호출하여 출력을 얻으려고했습니다 .Entity Framework를 사용하고 값을 가져 오기 위해 매핑이 수행되었지만 오류가 발생합니다.

Visual Studio 2019 (엔터티 프레임 워크 6, 엔터티를 사용하는 웹 API 2), SQL Server 2017을 사용하고 있습니다

[HttpGet]
[Route("api/display_specifications/test/{tid}")]           
public string GetUsers(int tid)
{
  using (projectEntities users = new projectEntities())
  {
    return users.get_dynamicform(tid).FirstOrDefault();
  }
}

예외 출력 :

{"field_id":1,"button_id":1,"label_name":"Full_Name","datatype":1,"ranges":60,"default_value":"null","field_width":20,"field_height":100,"label_width":10,
"rownumber":1,"sequence":1,"visibility":1,"placeholder":"Enter Full Name"}

오류 :

The type parameter 'System.String' in ExecuteFunction is incompatible with the type 'testingModel.get_dynamicform_Result' returned by the function for json

  • 답변 # 1

    EF에서 get_dynamicform 뒤의 스토어드 프로 시저   get_dynamicform_Result 유형을 리턴하도록 정의되었습니다.  컬렉션을 반환한다는 의미입니다. FirstOrDefault 사용   get_dynamicform_Result 의 인스턴스가 없거나 하나라는 것을 의미합니다. .

    그러나 pyzwyz  문자열을 반환하고 GetUsers 에서 변환이 없다고 말합니다.   get_dynamicform_Result 로 .

    아마도 string 의 멤버 속성을 반환하고 싶을 것입니다  전체 객체가 아니라 ( get_dynamicform_Result 의 정의가 없음)  더 구체적 일 수는 없습니다). 또한 null을 처리해야합니다.

    get_dynamicform_Result

관련 자료

  • 이전 android - 조각 내부의 뷰에 영향을 미치는 문제
  • 다음 python - 곡선 맞춤을 통한 추정값