Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-1120

Put entity set restrictions on NavigationPropertyDescriptions

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V4.01_CS01
    • Fix Version/s: V4.01_CS02, V4.0_CSD02
    • Component/s: Vocabularies
    • Labels:
      None
    • Proposal:
      Hide

      1) Remove "Collection" from AppliesTo for DeepInsertSupport; keep "EntityContainer" and "EntitySet".
      2) Add DeepInsertSupport, IndexableByKey, TopSupported, SkipSupported, SearchRestrictions, InsertRestrictions, UpdateRestrictions, and DeleteRestrictions to our NavigationPropertyRestrictions.

      Show
      1) Remove "Collection" from AppliesTo for DeepInsertSupport; keep "EntityContainer" and "EntitySet". 2) Add DeepInsertSupport, IndexableByKey, TopSupported, SkipSupported, SearchRestrictions, InsertRestrictions, UpdateRestrictions, and DeleteRestrictions to our NavigationPropertyRestrictions.
    • Resolution:
      Show
      https://github.com/oasis-tcs/odata-vocabularies/commit/fec6668c16245ac09c64afb8de5568fa5ce3ce29

      Description

      In OData-958 we added FilterRestrictions and SortRestrictions to NavigationPropertyDescriptions. This gave us a place to define such restrictions on collection-valued navigation properties. However, we missed some other restrictions and, in OData-1055, proposed to add one of these (DeepInsertSupport) as an annotation that could be applied to a "Collection" (i.e., a collection-valued navigation property). This has a number of issues:
      1) It uses the new "Collection" value in AppliesTo, which we did not want to return to OData 4.0 clients,
      2) It underspecifies where DeepInsertSupport can be applied (i.e., it doesn't make sense for collection-valued structural properties),
      3) It creates multiple places for the client to look to figure out what it can/can't do for a particular navigation property
      4) It puts the annotation on the navigation property within the type, which makes it difficult to re-use that type.

      A better, more consistent approach would be to add to NavigationPropertyRestrictions all of the restrictions we currently have for EntitySets.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              mikep Michael Pizzo
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: