OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (ODATA-674) Specify navigation property binding combined with containment


     [ https://issues.oasis-open.org/browse/ODATA-674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Pizzo updated ODATA-674:
--------------------------------

    Proposal: 
Allow NavigationPropertyBinding elements in navigation properties. 
-Target is always relative to the type containing the nav prop; it may traverse one or more complex types and single value containment(?) nav props and must terminate on a containment nav prop
>>what if the type containing the nav prop is a complex type, and target is another nav prop nested under a different complex type on the same parent?
-Path is always relative to the instance(s) returned by the navigation property, and may be omitted (or "*"?) if it is the instance returned by the navigation property
>>alternatively, Path is also relative to the type containing the nav prop and MUST start with the path to the nav prop on which the binding is defined 


ALSO consider navpropbinding for a singleton to specify that the singleton comes from a particular entity set. This must not be returned for 4.0 clients.

  was:
Allow NavigationPropertyBinding elements in navigation properties. 
-Target is always relative to the type containing the nav prop; it may traverse one or more complex types and single value containment nav props and must terminate on a containment nav prop
>>what if the type containing the nav prop is a complex type, and target is another nav prop nested under a different complex type on the same parent?
-Path is always relative to the instance(s) returned by the navigation property, and may be omitted (or "*"?) if it is the instance returned by the navigation property
>>alternatively, Path is also relative to the type containing the nav prop and MUST start with the path to the nav prop on which the binding is defined 


ALSO consider navpropbinding for a singleton to specify that the singleton comes from a particular entity set. This must not be returned for 4.0 clients.


> Specify navigation property binding combined with containment
> -------------------------------------------------------------
>
>                 Key: ODATA-674
>                 URL: https://issues.oasis-open.org/browse/ODATA-674
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Bug
>          Components: Implementing OData, OData CSDL
>    Affects Versions: V4.0_OS
>         Environment: Proposal needed for CSD01
>            Reporter: Ralf Handl
>            Assignee: Michael Pizzo
>              Labels: Gap, request_tc_discussion
>             Fix For: V4.01_WD01
>
>
> This combination is not explicitly covered in the specification.
> There are two sides to this problem: 
> - target entity sets for contained entities
> - contained entity sets as target entity sets
> Both problems can be solved by allowing <NavigationPropertyBinding> elements as children of the structured type that defines the containment navigation property.
> Example 1: navigation property of a contained entity targets a top-level entity set:
>   <NavigationProperty Name="Items" Type="Collection(Model.OrderItem)" ContainsTarget="true" />
>   <NavigationPropertyBinding Path="Items/Product" Target="Model.Container/Products"/>
> Example 2: assume an Order contains Items and Shipments, and an Item refers to a single Shipment of the same Order and vice versa. Using paths that start at the type defining the containment navigation property, the Target would be "Shipments" and "Items".
> <EntityType Name="Order">
>   <NavigationProperty Name="Items" Type="Collection(Model.OrderItem)" ContainsTarget="true" />
>   <NavigationPropertyBinding Path="Items/Shipment" Target="Shipments"/>  
>   <NavigationProperty Name="Shipments" Type="Collection(Model.Shipment)" ContainsTarget="true" />
>   <NavigationPropertyBinding Path="Shipments/ShippedItems" Target="Items"/>
> </EntityType>
> <EntityType Name="OrderItem">
>   <NavigationProperty Name="Shipment" Type="Model.Shipment" Partner="ShippedItems"/>
> </EntityType>
> <EntityType Name="Shipment">
>   <NavigationProperty Name="ShippedItems" Type="Collection(Model.OrderItem)" Partner="Shipment"/>
> </EntityType>



--
This message was sent by Atlassian JIRA
(v6.2.2#6258)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]