使用Azure移动应用程序中的嵌套复杂类型获取模型

时间:2016-08-09 06:31:23

标签: entity-framework azure azure-mobile-services iqueryable complextype

您好,我对Azure移动应用和实体框架相对较新 以下我一直在努力奋斗。

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

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

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

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。

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

ProximityRange_Accuracy, ProximityRange_Distance and Rssi

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

我尝试在查询中使用$ expand = ProximityRange,但会引发内部错误。

我也尝试将ProximityRange声明为ComplexType,但也没有运气。

非常感谢有人的帮助。

1 个答案:

答案 0 :(得分:2)

您不能(没有一些困难)在Azure Mobile Apps模型中使用复杂类型(如DbGeography或ProximityRange)。 OData翻译不涉及它们。

最好的想法是将其转换为字符串,然后实现JSON编码器/解码器。要查看的课程是JsonConverter