您好,我对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,但也没有运气。
非常感谢有人的帮助。
答案 0 :(得分:2)
您不能(没有一些困难)在Azure Mobile Apps模型中使用复杂类型(如DbGeography或ProximityRange)。 OData翻译不涉及它们。
最好的想法是将其转换为字符串,然后实现JSON编码器/解码器。要查看的课程是JsonConverter