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

Download this release

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

PM> Install-Package Microsoft.AspNet.OData -Pre

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.
  • 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] (https://github.com/OData/Odata.net/issues/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.


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.