0

我有三个实体,在一个继承层次结构中,如下所示。

<EntityType Name="Base" Abstract="true">
    <Property Name="id" Type="Edm.String" Nullable="false" />
</EntityType>

<EntityType Name="Derived1" Abstract="true" BaseType="Base">
    <NavigationProperty Name="idps" Type="Collection(Idps)" />
</EntityType>

<EntityType Name="Derived2" Abstract="true" BaseType="Base">
    <NavigationProperty Name="attributes" Type="Collection(Attributes)" />
</EntityType>

我想支持 idps 和属性的 $select 和 $expand 查询选项。

/base?$select=idps 给我以下错误

URI 中指定的查询无效。在“Base”类型上找不到名为“idps”的属性。”

什么是正确的 odata 选项,我该如何支持?

4

1 回答 1

0

ODL 支持 $select 和 $expand 中的类型转换段。

以下是一些您可以参考的测试用例:

1) https://github.com/OData/WebApi/blob/master/test/E2ETest/Microsoft.Test.E2E.AspNet.OData/NavigationPropertyOnComplexType/SelectImprovementOnComplexTypeTests.cs#L141

2) https://github.com/OData/WebApi/blob/master/test/E2ETest/Microsoft.Test.E2E.AspNet.OData/NavigationPropertyOnComplexType/SelectImprovementOnComplexTypeTests.cs#L284

测试用例涵盖了复杂类型转换,实体类型转换也是如此。

于 2020-05-27T16:23:44.087 回答