我正在使用Odata / Olingo v2。我定义了几种实体类型,包括Product
和Category
。一个Product
可以有多个Categories
。
我只想将Products
用作Feed /资源。我以为可以通过定义Category
实体类型和关联来实现此目的,但不添加Categories
EntitySet
和AssociationSet
到EntityContainer
。我还在NavigationProperty
和Product
之间创建了一个Category
。
这似乎是有效的EDMX,至少Olingo的EdmxProvider.parse()
不反对。但是,当我在集合Product
中向集合Categories
发送Products
的{{1}}时,Olingo抛出了EdmEntityContainerImplProv.getAssociationSet()
的异常,因为它希望找到一个AssociationSet
Categories
在OData / Olingo v2中有没有办法做到这一点?
编辑:将Category
设为ComplexType
并不是一种选择,因为我需要收集它们的集合,而在OData / Olingo v2中是不可能的
答案 0 :(得分:1)
我不熟悉olingo的实现,因此无法将您指向任何方法。
但是一般来说:如果您希望一个实体作为一个集合(无论是/Product('123')/ToCategories
还是/CategorySet
都可以访问),则需要在元数据和实现中使用相应的EntitySet。
但是,通过导航属性使用时,可以将实现限制为仅 响应。
例如:在Abap实现中,实现类别get_entityset的方法具有以下信息:可以通过导航属性从另一个包含键的实体(甚至是路径)访问该信息。如果您决定不想直接访问/CategorySet