Jaydata - 支持 OData v4 中的多态集合
Jaydata - support for polymorphic collections in OData v4
JayData 1.5.1 是否支持可以包含具有继承层次结构的元素的多态集合?
我有一个包含多态集合的 OData v4 服务。该服务是使用 asp.net WebApi 2.2 和 OData 5.8 实现的。该集合包含适当的 $odata.type 元数据,指示派生类型,并且服务本身似乎按预期工作。
我已经在我的数据模型中声明了一个实体基类型和派生类型,并且该集合在数据上下文中被声明为一个 elementType 设置为基实体类型的集合。
查询此集合时,JayData 似乎只为集合的每个成员创建基本类型实体,而忽略了 $odata.type 元数据。有没有办法指示 JayData 为多态集合创建适当的派生实体类型?
此外,与上述相关,当我查询集合时,我需要扩展元素的子集合,这些元素仅与一种派生类型相关,而不与基类型相关。在 OData 中,这是使用类似于以下内容的 $expand 完成的:
$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"
},
});
谢谢,
杰夫
免责声明:我在 JayData 团队工作
继承类无法进入1.5。元数据模型和表达式解析器确实支持它,但查询构建器不知道 类 和 sub类。由于继承是 Microsoft Graph API 的基础 - 我们决定将下一个版本 (1.6) 专门用于它 - 而不是等待其他 V4 功能的发布。
JayData 1.5.1 是否支持可以包含具有继承层次结构的元素的多态集合?
我有一个包含多态集合的 OData v4 服务。该服务是使用 asp.net WebApi 2.2 和 OData 5.8 实现的。该集合包含适当的 $odata.type 元数据,指示派生类型,并且服务本身似乎按预期工作。
我已经在我的数据模型中声明了一个实体基类型和派生类型,并且该集合在数据上下文中被声明为一个 elementType 设置为基实体类型的集合。
查询此集合时,JayData 似乎只为集合的每个成员创建基本类型实体,而忽略了 $odata.type 元数据。有没有办法指示 JayData 为多态集合创建适当的派生实体类型?
此外,与上述相关,当我查询集合时,我需要扩展元素的子集合,这些元素仅与一种派生类型相关,而不与基类型相关。在 OData 中,这是使用类似于以下内容的 $expand 完成的:
$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"
},
});
谢谢,
杰夫
免责声明:我在 JayData 团队工作
继承类无法进入1.5。元数据模型和表达式解析器确实支持它,但查询构建器不知道 类 和 sub类。由于继承是 Microsoft Graph API 的基础 - 我们决定将下一个版本 (1.6) 专门用于它 - 而不是等待其他 V4 功能的发布。