【问题标题】:Can I define an EntityType but not make it available as a Feed?我可以定义 EntityType 但不能将其作为 Feed 使用吗?
【发布时间】:2019-03-07 04:47:57
【问题描述】:

我正在使用 Odata/Olingo v2。我定义了几个实体类型,包括ProductCategory。一个Product 可以有多个Categories

我只想将Products 用作提要/资源。我想我可以通过定义Category 实体类型和关联但不添加Categories @ 来实现这一点987654328@ 和 AssociationSetEntityContainer。我还在ProductCategory 之间创建了一个NavigationProperty

这似乎是有效的 EDMX,至少 Olingo 的 EdmxProvider.parse() 不反对。但是,当我将带有Categories 集合的Product 发布到Products 提要时,Olingo 会从EdmEntityContainerImplProv.getAssociationSet() 抛出异常,因为它希望为Categories 找到AssociationSet

有没有办法在 OData/Olingo v2 中实现这一点?

编辑:将Category 设为ComplexType 不是一个选项,因为我需要收集它们,而这在 OData/Olingo v2 中是不可能的

【问题讨论】:

    标签: odata olingo


    【解决方案1】:

    我不熟悉 olingo 的实现,所以不能指出方法/什么。

    但总的来说:如果您希望一个实体可以作为一个集合访问(无论是 /Product('123')/ToCategories 还是只是 /CategorySet),您需要在元数据和实现中使用相应的 EntitySet。

    但是,您可以将实现限制为在通过导航属性使用时响应。

    例如:在 Abap 实现中,实现类别 get_entityset 的方法具有这样的信息,即通过导航属性从另一个实体(甚至路径)访问它,包括键。在这里,如果您决定不想提供对 /CategorySet 的直接访问权限,您可以抛出异常或只返回一个空集。

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      相关资源
      最近更新 更多