从 Azure 移动应用获取具有嵌套复杂类型的模型

Getting Model with nested complex types from Azure Mobile Apps

您好,我对 Azure 移动应用比较陌生,Entity Framework 所以 我一直在努力解决以下问题。

我在 .net 中的 azure 移动应用程序上有以下模型:

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

其中 ProximityRange 只是其他两个属性的容器 class

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

     public double Accuracy { get; set; }
}

控制器有一个通过查询获取所有位置的方法。

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

}

但是当我调用控制器时,我只得到一个带有 TimeOfLocation 和 Rssi 的 JSON。

在实体位置的数据库 table 中,我有 3 列

ProximityRange_Accuracy, ProximityRange_Distance and Rssi

我需要从控制器 GetAllLocations 获取所有 3 个属性作为 JSON 对象。

我试过在查询中使用 $expand=ProximityRange 但抛出了一个内部错误。

我也试过将 ProximityRange 声明为 ComplexType,但也不成功。

非常感谢有人的帮助。

您不能(毫无困难地)在 Azure 移动应用程序模型中使用复杂类型(如 DbGeography 或您的 ProximityRange)。 OData 翻译不处理它们。

最好的办法是将其转换为字符串,然后实现 JSON encoder/decoder。要查看的 class 是 JsonConverter