Получение модели с вложенными сложными типами из Azure Mobile Apps

Привет, я относительно новичок в Azure Mobile Apps и Entity Framework, поэтому Некоторое время я боролся со следующим.

У меня есть следующая модель для мобильного приложения azure в .net:

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

где ProximityRange - это просто класс контейнера для двух других свойств

public class ProximityRange
{
 public ****** Distance { get; set; }
 public ****** Accuracy { get; set; }
}

У контроллера есть способ получить все местоположения по запросу.

public IQueryable<location> GetAllLocations()
{
 var query = Query();
 return query;
}
</location>

Но когда я вызываю контроллер, я получаю только JSON с TimeOfLocation и Rssi.

В таблице DB объекта Location У меня есть 3 столбца

ProximityRange_Accuracy, ProximityRange_Distance and Rssi

Мне нужно получить все 3 свойства от контроллера GetAllLocations как объект JSON.

Я попытался использовать $expand = ProximityRange в запросе, но выдает внутреннюю ошибку.

Я также попытался объявить ProximityRange как ComplexType, но не повезло.

Было бы очень полезно помочь кому-то.

1 ответ

Вы не можете (без каких-либо трудностей) использовать сложные типы (например, DbGeography или ваш ProximityRange) в моделях Azure Mobile Apps. Перевод OData не связан с ними.

Лучшая идея - перевести его в строку, а затем реализовать кодировщик/декодер JSON. Класс, на который нужно смотреть, - JsonConverter

licensed under cc by-sa 3.0 with attribution.