The NuGet packages for OData v4 Web API 6.0.0 are available on the NuGet gallery.

Download this release

You can install or update the NuGet packages for OData Web API v6.0.0 using the Package Manager Console:

PM> Install-Package Microsoft.AspNet.OData

What’s in this release?

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 Some changes in Delta for complex/entity type delta.

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:

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

Questions and feedback

You and your team are warmly welcomed to try out this new version if you are interested in the new features and fixes above. You are also welcomed to contribute your code to OData Web API repository. For any feature request, issue or idea please feel free to reach out to us at GitHub Issues.