Jaydata-支持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=我的。模型派生类型/子集合

有没有办法将其添加到查询的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。元数据模型和表达式解析器确实支持它,但查询生成器不知道类和子类。由于继承是Microsoft Graph API的基础,我们决定将下一个版本(1.6)用于此版本,而不会推迟其他V4功能的发布。

相关内容

  • 没有找到相关文章

最新更新