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-979) Recursive containment navigation properties and Partner attribute


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

Michael Pizzo updated ODATA-979:
--------------------------------

    Proposal: 
Clarify prose text:

Containment navigation properties MAY specify a Partner attribute. If the containment is recursive, the relationship defines a tree; thus the navigation property on the type defined as the partner MUST specify a single entity type and MUST be nullable (for the root of the tree). If the containment is not recursive, the partner navigation property MUST NOT be nullable because it leads back to the containing entity.

An entity type inheritance chain MUST NOT contain more than one navigation property with a Partner attribute referencing a containment relationship.

Current prose text:

Containment navigation properties MAY specify a Partner attribute. If the containment is recursive, the partner navigation property MUST be nullable and specify a single entity type. If the containment is not recursive, the partner navigation property MUST NOT be nullable.

An entity type hierarchy MUST NOT contain more than one navigation property with a Partner attribute referencing a containment relationship.

  was:
Relaxed prose text:

Containment navigation properties MAY specify a Partner attribute. If the containment is recursive, the partner navigation property MUST specify a single entity type and MAY be nullable. If the containment is not recursive, the partner navigation property MUST NOT be nullable.


Current prose text:

Containment navigation properties MAY specify a Partner attribute. If the containment is recursive, the partner navigation property MUST be nullable and specify a single entity type. If the containment is not recursive, the partner navigation property MUST NOT be nullable.

An entity type hierarchy MUST NOT contain more than one navigation property with a Partner attribute referencing a containment relationship.


> Recursive containment navigation properties and Partner attribute
> -----------------------------------------------------------------
>
>                 Key: ODATA-979
>                 URL: https://issues.oasis-open.org/browse/ODATA-979
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Bug
>          Components: OData CSDL
>    Affects Versions: V4.0_ERRATA03
>         Environment: Proposed
>            Reporter: Ralf Handl
>             Fix For: V4.01_WD01
>
>
> An entity cannot be referenced by more than one containment relationship, and cannot both belong to an entity set declared within the entity container and be referenced by a containment relationship. 
> Current rules around recursive containment and partner navigation properties seem to be sufficient to achieve this goal. but may not be necessary, i.e. seem overly restrictive.
> A counter-example to the current rules can be constructed by redefining a partner navigation property with a more specific type, which is allowed now:
> - EntityType Name=FileSystemEntry
>   - NavigationProperty Name=Parent Type=this.FileSystemEntry Nullable=true
> - EntityType Name=Folder BaseType=this.FileSystemEntry
>   - NavigationProperty Name=Children Type=Collection(this.FileSystemEntry) Partner=Parent
> - EntityType Name=File BaseType=this.FileSystemEntry
>   - NavigationProperty Name=Parent Type=this.Folder Nullable=false



--
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]