4

내 azure 모바일 앱 백엔드가 이상한 동작을하고 있습니다. (500)Azure MobileApp Controller는 반환 유형이 IQueryable 인 경우에만 500을 반환합니다.

간단한 예를 들어 내 컨트롤러 액션은 IQueryable<T>을 반환하고 개체 유형은 탐색 속성은 반환이있는 경우 :

모델

public class ProductHierarchy : EntityData 
{ 
    public string Name { get; set; } 

    public string Description { get; set; } 

    public DateTime ValidFrom { get; set; } 

    public DateTime ValidTo { get; set; } 

    public string BrandId{ get; set; } 
    [ForeignKey("BrandId")] 
    public virtual Brand Brand { get; set; } 

    public ProductStatus Status { get; set; } 

    public int CreatedBy { get; set; } 

    public int ModifiedBy { get; set; } 
} 

컨트롤러 액션

[HttpGet] 
    [Route("api/ProductHierarchies/FromBrand/{brandId}")] 
    public IQueryable<ProductHierarchy> FromBrand(int brandId) 
    { 
     var hierarchies = Query().Where(hi => hi.Brand.OldBrandId ==brandId); 
     return hierarchies; 
    } 

내가 애 솔루션은 내 로컬 컴퓨터에서 실행이 행동에 요청, 모든 것이 내가 푸른에 솔루션을 게시 그러나 때, 잘 작동의 FromBrand 조치는 일반 메시지 또한

"An error has occurred." 

로, 500을 반환하기 시작 나는이 두 가지 변화를 발견했습니다

Detailed Error Information: Module 
__DynamicModule_Microsoft.Owin.Host.SystemWeb.OwinHttpModule,Microsoft.Owin.Host .SystemWeb, Version=3.0.1.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35_19e9f0a3-023d-4d8b-83ef- 180a415e7921 Notification PreExecuteRequestHandler Handler ExtensionlessUrlHandler-Integrated-4.0 Error Code 0x00000000 

오류 방지 할 수 있습니다 :

1 나는의 Brand 속성을 장식 할 때) 나는 작업에 요청을 할 때, 푸른 로그는 나에게 다음과 같은 예외를 보여줍니다 함께 모델 JsonIgnoreBrand 속성은 무시하고 모든 것을 내가 JsonIgnore atribute없이 모델의 Brand 속성을 유지 List<ProductHierarchy>에 액션 반환 형식을 변경하면 모든 것이 너무 잘 작동

2) 잘 작동한다.

T에 다른 엔터티가있는 유형의 속성이있을 때이 문제가 계속 발생하고 있다고 결론 내릴 수 있습니다. IQueryable<T>

같은 문제가있는 사람을 찾지 못했기 때문에 직렬 패키지에 대한 작업 또는 상호 작용을 찾는 내 너겟 패키지를 살펴보기 시작했습니다. 의심스러운 것은 Newtonsoft Json과 AutoMapper에 있습니다.

누구나 이러한 패키지의 내부를 살펴보고 문제의 근원을 파악하는 방법에 대한 단서가 있습니까?

답변

2

관계와 관련하여 많은 쟁점과 첨단 사례가 있습니다. 나는 당신이 문제에 부딪혔다는 사실에 놀라지 않습니다.

일부 자원 :

  1. 책 - http://aka.ms/zumobook (특히 제 3 장)
  2. 블로그 관계에 : 가 https://shellmonger.com/2016/05/27/30-days-of-zumo-v2-azure-mobile-apps-day-26-relationship-advice/
+0

감사합니다 애드리안, 난 당신이 언급 한 두 개의 참조에 살펴볼 것이다 도움이된다면 결과와 함께 돌아 오십시오. –

+0

Adrian, 소재 덕분에 경로가 명확 해졌습니다. 엔티티에서 릴레이션을 제거 할 것입니다. 엔티티가 모바일 측에서 필요하지 않으므로 앤티 티를 플랫하게 유지합니다. –