V6.0.0
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
toODataResourceSet
- Rename
ODataEntry
toODataResource
- Rename
ODataNavigationLink
toODataNestedResourceInfo
- Rename
ODataPayloadKind.Entry
toODataPayloadKind.Resource
- Rename
ODataPayloadKind.Feed
toODataPayloadKind.ResourceSet
- Rename
ODataEntityTypeSerializer
toODataResourceSerializer
- Rename
ODataFeedSerializer
toODataResourceSetSerizlier
- Rename
ODataEntityDeserializer
toODataResourceDeserializer
- Rename
ODataFeedDeserializer
toODataResourceSetDeserializer
- Remove
ODataComplexValue
- Remove
ODataComplexSerializer/ODataComplexTypeDeserializer
- Rename
- [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.
- New attribute classes, ( for example
- 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
andDeclaringEntityType
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.
- New
- [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.