Skip to content

V6.0.0

Compare
Choose a tag to compare
@xuzhg xuzhg released this 14 Sep 05:51
· 625 commits to master since this release

We're pleased to announce Web API OData V6.0.0 has been published to Nuget. Web API OData V6.0.0 is a breaking change version dependent on OData Lib v7.0.0 breaking change.

Download & try the Web API OData V6.0.0 right now!


Breaking Changes:

  • Unify the entity and complex (collection) type serialization/deserialization, See [ odata issue #504 ]
    • Rename ODataFeed to ODataResourceSet
    • Rename ODataEntry to ODataResource
    • Rename ODataNavigationLink to ODataNestedResourceInfo
    • Rename ODataPayloadKind.Entry to ODataPayloadKind.Resource
    • Rename ODataPayloadKind.Feed to ODataPayloadKind.ResourceSet
    • Rename ODataEntityTypeSerializer to ODataResourceSerializer
    • Rename ODataFeedSerializer to ODataResourceSetSerizlier
    • Rename ODataEntityDeserializer to ODataResourceDeserializer
    • Rename ODataFeedDeserializer to ODataResourceSetDeserializer
    • Remove ODataComplexValue
    • Remove ODataComplexSerializer/ODataComplexTypeDeserializer
  • [Issue #745] Support dependency injection (DI).
    • Integrate with the very popular DI framework Microsoft.Extensions.DependencyInjection.
    • Enable extremely easy customization of many services in Web API OData using DI.
    • Simplify APIs by removing redundant parameters and properties that have corresponding services registered in DI.
  • [Issue #681] Using ODL path segment classes directly.
    • Remove all path segment classes defined in Web API OData.
    • Using the ODL path segment classes and template classes
  • [Issue #693] Support new model bound attributes.
    • New attribute classes, ( for example FilterAttribute, OrderbyAttribute, etc ) used to enhance query options validation.
    • Query options are disallowed by default, see detail in document.
  • Support complex type with navigation property.
    • HasMany(), HasRequired(), HasOptional can be used on complex type to add navigation property.
    • Support navigation property on complex type in convention model builder.
    • Remove INavigationSourceConfiguration and DeclaringEntityType property
  • Support multiple navigation property bindings for a single navigation property by using different paths, see [ odata issue #629 ]
    • New BindingPathConfiguration<T> class used to add binding path
    • New NavigationPropertyBindingOption used to control binding in model builder.
  • [Issue #764] public IsIfNoneMatch property
  • [Issue #797] public Convert APIs in ODataModelBinderProvider.
  • [Issue #172] ETagMessageHandler is not supporting typeless entities.
  • [Issue #652] Change Delta for complex/entity type patch.

Migration ODL changes:

  • Simplified ODL namespaces, see [ odata issue #491 ]
  • Rename ODataUrlConvention to ODataUrlKeyDelimiter, see [ odata issue #571 ]
    • Rename ODataUrlConvention to ODataUrlKeyDelimiter.
    • Use ODataUrlKeyDelimiter.Slash instead of ODataUrlConvention.Simplified or ODataUrlConvention.KeyAsSegment
    • Use ODataUrlKeyDelimiter.Parentheses instead of ODataUrlConvention.Default
  • Change SerializationTypeNameAnnotation to ODataTypeAnnotation, see [ odata issue #614 ]
  • Change Enum member value type from IEdmPrimitiveValue to a more specific type, see [ odata issue #544 ]
  • Adjust query node kinds in Uri Parser in order to support navigation under complex. see [ odata issue #643 ]
    • Add SingleComplexNode and CollectionComplexNode to specifically represent complex type node.
    • Add SingleResourceNode as the base class of SingleEntityNode and SingleComplexNode, etc.
  • Rename CsdlXXX to SchemaXXX, and EdmxXXX to CsdlXXX, see [ odata issue #632 ]
    • CsdlReader/Writer to SchemaReader/Writer;
    • EdmxReader/Writer to CsdlReader/Writer;
    • EdmxReaderSettings to CsdlReaderSettings;
    • EdmxTarget to CsdlTarget
  • Remove Edm.ConcurrencyMode attribute. see [ odata issue #564 ]
  • Remove odata.null in ODL. It's developer's responsibility to check whether the return object is null or not.

Improvements & Fixes:

  • [Issue #719] ODataSwaggerConverter throws exception on composite key.
  • [Issue #711] Using same enum twice in a model causes null reference exception.
  • [Issue #697] EnumMember attribute without value.
  • [Issue #726] Aggregation failed in Restier.
  • [Issue #706] Change substringof to contained builtin function.
  • [Issue #722] URI template parser doesn't work correctly if key is of an enum type, see [ odata issue #556 ]
  • [Issue #630] Orderby with duplicate properties.
  • [Issue #578] The $skip and $top query options throw ODataException if overflows. [Pull Request #801] by Tijmen van der Burgt.
  • [Issue #418] Ignore non-odata query parameters when building parameter. [Pull Request #748] by Michael Petito.
  • [Issue #750] Provide a option to disable AutoExpand when $select is present.

Here can find the OData V4 7.0.0 breaking changes docs and tutorials.