我和odata $expand
有一个奇怪的错误。如果我展开空对象的集合,我会收到错误
"值不能为空"
这是我的疑问:
GET localhost/OData/Location(10)/?$expand=position($expand=area($expand=points))
此查询生成错误
"值不能为空"
不应该将stop扩展到第一个null对象吗? 这里的区域为空。
我的课程是这样的:
Location
- Position
- Area
- Anchor
- ICollection<Points>
Location
{
public Position position { get; set; }
}
Position
{
public Area area { get; set; }
}
Area
{
public Anchor anchor { get; set; }
public ICollection<Points> points { get; set; }
}
对于我的数据库中的此位置ID=10
,该位置不为空,位置IS NOT NULL但区域为IS NULL。
这就是为什么我的查询:
localhost/OData/Location(10)?$expand=position($expand=area($expand=points))
将生成该错误。
但似乎只有在展开null对象的集合时才会出现问题,因为如果我展开Anchor对象:
GET localhost/OData/Location(10)/?$expand=position($expand=area($expand=anchor))
然后正确扩展位置并且扩展在Area处停止 - 所以在json中我得到&#34; area&#34;:null,没有错误,但扩展点集合崩溃。
我们前端团队的要求是让对象完全展开,因此他们将发送一个查询,其中包含所有子对象和子集合。
任何人都知道为什么$expand
也不会停止收藏?