4

안녕하세요, 저는 Azure 모바일 앱과 Entity Framework에 비교적 익숙합니다. 다음과 같이 많은 어려움을 겪고 있습니다.Azure 모바일 앱에서 중첩 된 복합 유형으로 모델 가져 오기

I .NET에서 푸른 모바일 앱에 다음과 같은 모델을 가지고 : ProximityRange 두 가지 다른 속성

public class ProximityRange 
{ 
    public double Distance { get; set; } 

    public double Accuracy { get; set; } 
} 

컨트롤러가 얻을 수있는 방법이 있습니다 단지 컨테이너 클래스입니다

public class Location : EntityData 
{ 
    public ProximityRange ProximityRange { get; set; }   
    public double Rssi { get; set; } 
    public DateTime TimeOfLocation { get; set; } 
} 

모든 위치는 검색어로

public IQueryable<Location> GetAllLocations() 
{ 
    var query = Query(); 
    return query; 

} 

그러나 컨트롤러를 호출 할 때 나는 TimeOfLocation과 Rssi 만 가지고 JSON을 얻습니다. 엔티티 위치의 DB 테이블에서

나는 3 열 내가 JSON 개체와 같은 컨트롤러 GetAllLocations에서 3 개 특성을 얻을 필요가
ProximityRange_Accuracy, ProximityRange_Distance and Rssi 

있습니다.

쿼리에서 $ expand = ProximityRange를 사용해 보았지만 내부 오류가 발생했습니다.

또한 ProximityRange를 ComplexType으로 선언했지만 시도하지 않았습니다.

많은 도움을 주실 수 있습니까?

답변

2

Azure 모바일 애플리케이션 모델에서 복잡한 유형 (예 : DbGeography 또는 ProximityRange)을 사용할 수 없습니다. OData 변환은 이들을 처리하지 않습니다.

가장 좋은 아이디어는 문자열로 변환 한 다음 JSON 인코더/디코더를 구현하는 것입니다. 살펴볼 클래스는 JsonConverter

+0

입니다. 따라서 Azure 모바일 서비스는 사용하지 말고 json 요청 및 응답을 변환하는 사용자 정의 API를 만드십시오. 나는 옳은지 이해합니까? – batmaci

+0

아니요 - 모바일 앱 SDK를 통해 문자열 표현을 전송할 수 있습니다. 진정한 지형으로의 전환을 처리해야합니다. 이것은 대부분 다른 플랫폼이 지리를 다르게 표현하기 때문입니다. 이는 데이터베이스의 DbGeography이지만 클라이언트 측 모델에서 다른 표현이 될 수 있습니다. –