JayData 1.5.1是否支持可以包含具有继承层次结构的元素的多态集合?
我有一个包含多态集合的OData v4服务。该服务使用asp.net WebApi 2.2和OData 5.8实现。该集合包含指示派生类型的适当$ odata.type元数据,并且服务本身似乎按预期工作。
我已在我的数据模型中声明了实体基类型和派生类型,并且该集合在数据上下文中声明为elementType设置为基本实体类型的集合。
查询此集合时,似乎JayData仅为集合的每个成员创建基本类型实体,忽略$ odata.type metatdata。有没有办法指示JayData为多态集合创建适当的派生实体类型?
此外,与上述相关,当我查询集合时,我需要扩展仅与其中一个派生类型相关的元素的子集合,而不是基本类型。在OData中,这是使用$ expand完成的,类似于以下内容:
$扩大= My.Model.DerivedType / ChildCollection
有没有办法将其添加到JayData' include'部分查询?
这是一个有点代表性的样本数据模型:
types["My.Model.BaseType"] = $data.Entity.extend("My.Model.BaseType", {
...
});
types["My.Model.Child"] = $data.Entity.extend("My.Model.Child", {
...
});
types["My.Model.DerivedType"] = types["My.Model.BaseType"].extend("My.Model.DerivedType", {
...
ChildCollection: {
"type": "Array",
"elementType": "My.Model.Child",
"inverseProperty": "$$unbound"
}
});
exports.type = types["MyData.Container"] = $data.EntityContext.extend("MyData.Container", {
PolymorphicCollection: {
"type": "$data.EntitySet",
"elementType": "My.Model.BaseType"
},
});
谢谢,
杰夫。
答案 0 :(得分:1)
免责声明:我与JayData团队合作
继承的类无法进入1.5。元数据模型和表达式解析器确实支持它,但查询构建器不知道类和子类。由于继承是Microsoft Graph API的基础 - 我们决定将下一个版本(1.6)专用于它 - 而不是阻止其他V4功能的发布。