Releases: OData/WebApi
7.5.0
See release note at: https://docs.microsoft.com/en-us/odata/changelog/webapi-7x#webapi-750
V5.10.0
We are happy to announce that the Web API OData v5.10 is released and available on NuGet.
Improvements and fixes:
- Delta feed should only serialize changed properties. Issue #857
- Dynamic properties set to null should be written in a Delta Feed. Issue #927
- @odata.Etag should be written for singletons, single-valued navigation properties #926
New Features:
- ODataProperties supports writing a delta link. Issue #900
- A new EdmDeltaComplexObject is added to support serializing changed properties of a complex type. Issue #857
- Added a new NavigationSource property for setting the entity set of related EdmDeltaEntityObjects and EdmDeltaDeletedEntityObjects in a flattened result. Issue #937
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.
V6.0.0-beta
We're pleased to announce Web API OData V6.0.0-beta has been published to Nuget. Web API OData V6.0.0-beta is a breaking change version dependent on OData Lib v7.0.0 breaking change.
Download & try the Web API OData V6.0.0-beta right now!
Breaking Changes:
- Unify the entity and complex (collection) type serialization/deserialization, See [ [odata issue #504](https://github.com/OData/odata.net/issues/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](https://www.nuget.org/packages/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.](http://odata.github.io/WebApi/#13-01-modelbound-attribute) - 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](https://github.com/OData/odata.net/issues/629) ] - New `BindingPathConfiguration` 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](https://github.com/OData/odata.net/issues/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](https://github.com/OData/odata.net/issues/614) ] - Change Enum member value type from IEdmPrimitiveValue to a more specific type, see [ [odata issue #544](https://github.com/OData/odata.net/issues/544) ] - Adjust query node kinds in Uri Parser in order to support navigation under complex. see [ [odata issue #643](https://github.com/OData/odata.net/issues/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](https://github.com/OData/odata.net/issues/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](https://github.com/OData/odata.net/issues/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](https://github.com/OData/odata.net/issues/556) ] - [Issue #630] Orderby with duplicate properties.Here can find the OData V4 7.0.0 breaking changes docs and tutorials.
V5.9.1
New Features:
- ETagMessageHandler is not supporting typeless entities. Issue [#172](https://github.com//issues/172)Improvements & Fixes:
- POST with GeographyPoint throws object must implement IConvertable. Issue [#718](https://github.com//issues/718) - Model binding broken with enum keys. Issue [#724](https://github.com//issues/724) - Update enum property doesn't work. Issue [#742](https://github.com//issues/742) - Delta<T> should avoid static properties. Issue [#137](https://github.com//issues/137) - MaxExpansionDepth of 0 is not work. Issue [#731](https://github.com//issues/731) - EnumMember support without value. Issue [#697](https://github.com//issues/697) - Make IsIfNoneMatch public. Issue [#764](https://github.com//issues/764)OData Web API v5.9.1 package has a dependency on OData v4 Lib 6.15.
V5.9
New Features:
- Support PATCH to a complex type. Issue [#135](https://github.com//issues/135), PR [#623](https://github.com//pull/623) - Added basic support for aggregations spec. Issue [#70](https://github.com//issues/70), PR [#594](https://github.com//pull/594) by [Konstantin Kosinsky](https://github.com/kosinsky) - Support Edm.Date with EF backend. Issue [#118](https://github.com//pull/118), PR [#600](https://github.com//pull/600) - Support "isof" query built-in function. Issue [#185](https://github.com//issues/185), PR [#646](https://github.com//pull/646) - Advertise action/function in feed payload. Issue [#637](https://github.com//issues/637), PR [#642](https://github.com//pull/642) - Bind Uri Functions to CLR methods. Issue [#612](https://github.com//issues/612), PR [#613](https://github.com//pull/613)Bug Fixes:
- Support Pass Null to EntitySet during Feed Serialization. Issue [#617](https://github.com//issues/617), PR [#621](https://github.com//pull/621) - DataContractAttribute, etc don't work for enum type. Issue [#640](https://github.com//issues/640) - Provide an extensibility hook for consumers of ODataMediaTypeFormatter to customize base address of service root in OData uris. Issue [#644](https://github.com//issues/644), PR [#645](https://github.com//pull/645) by [Jack Freelander](https://github.com/jackfree) - Using object key for null check in expression. Issue [#559](https://github.com//issues/559), PR [#584](https://github.com//pull/584) by [Yuriy Soldatkin](https://github.com/postoronnimw)OData Web API v5.9 package has a dependency on OData v4 Lib 6.15.
V5.8
New Features:
- Web API does not support Edm.Date literal in $filter when the property is Edm.Date [Nullable=True] and the backend is EF. Issue [#482](https://github.com//issues/482), PR [#541](https://github.com//pull/541) - Add swagger model APIs. Issue [#302](https://github.com//issues/302), PR [#520](https://github.com//pull/520) - Expand query option contain $count don't work. Issue [#349](https://github.com//pull/349), PR [#553](https://github.com//pull/553) - Added UrlConventions configuration in DefaultODataPathHandler that supports [ODataSimplified Uri convention](http://odata.github.io/WebApi/#4-23-simplified-uri-convention). PR [#599](https://github.com//pull/599) by [Gan Quan](https://github.com/BarclayII) - Make other nested query options in to work. Issue [#557](https://github.com//issues/557), PR [#569](https://github.com//pull/569) - Added config options SerializeNullCollectionsAsEmpty and DoNotSerializeNullCollections. Issue [#490](https://github.com//issues/490), PR [#583](https://github.com//pull/583) by [nickkin-msft](https://github.com/nickkin-msft) - Enable to serialize the null dynamic propery by config. Issue [#313](https://github.com//issues/313), PR [#573](https://github.com//pull/573)Bug Fixes:
- Fixed typographical error, changed availabe to available in README. PR [#519](https://github.com//pull/519) by [orthographic-pedant](https://github.com/orthographic-pedant) - `[ConcurrencyCheck]` attribute doesn't work with EF. Issue [#522](https://github.com//issues/522), PR [#529](https://github.com//pull/529) - Manually using ODataQueryOptions.Validate and setting SelectExpandQueryOption.LevelsMaxLiteralExpansionDepth. Issue [#516](https://github.com//issues/516), PR [#524](https://github.com//pull/524) - CultureInfo property can't be serialized. Issue [#427](https://github.com//issues/427), PR [#542](https://github.com//pull/542) - Add operationId for Swagger json generation. Issue [#302](https://github.com//issues/302), PR [#552](https://github.com//pull/552) - ETag can't work for double type. Issue [#475](https://github.com//issues/475), PR [#549](https://github.com//pull/549) - EditLink is wrong in 5.7. Issue [#543](https://github.com//issues/543), PR [#554](https://github.com//pull/554) - $count is evaluated prematurely at the call queryOptions.ApplyTo. Issue [#1](https://github.com//issues/1), PR [#562](https://github.com//pull/562) - Unnecessary casts in expression when querying properties of the base class for the inheritor. Issue [#560](https://github.com//issues/560), PR [#556](https://github.com//pull/556) by [Yuriy Soldatkin](https://github.com/postoronnimw) - Regression about the complex inheritance build. Issue [#575](https://github.com//issues/575), PR [#577](https://github.com//pull/577) - ProcedureConfiguration API to support types known at runtime. PR [#580](https://github.com//pull/580) by [Yogev Mizrahi](https://github.com/YogiBear52) - Array of enum doesn't work for convention model builder. Issue [#581](https://github.com//issues/581), PR [#582](https://github.com//pull/582)OData Web API v5.8 package has a dependency on OData v4 Lib 6.14.
Doc: http://odata.github.io/WebApi
Nuget: https://www.nuget.org/packages/Microsoft.AspNet.OData/5.8.0
v5.8-beta
Improvements and fixes:
- Fixed typographical error, changed availabe to available in README. PR #519 by orthographic-pedant
[ConcurrencyCheck]
attribute doesn't work with EF. Issue #522, PR #529- Manually using ODataQueryOptions.Validate and setting SelectExpandQueryOption.LevelsMaxLiteralExpansionDepth. Issue #516, PR #524
- CultureInfo property can't be serialized. Issue #427, PR #542
- Web API does not support Edm.Date literal in $filter when the property is Edm.Date [Nullable=True] and the backend is EF. Issue #482, PR #541
- Add swagger model APIs. Issue #302, PR #520
- Add operationId for Swagger json generation. Issue #302, PR #552
- ETag can't work for double type. Issue #475, PR #549
- Expand query option contain $count don't work. Issue #349, PR #553
- EditLink is wrong in 5.7. Issue #543, PR #554
- $count is evaluated prematurely at the call queryOptions.ApplyTo. Issue #1, PR #562
- Unnecessary casts in expression when querying properties of the base class for the inheritor. Issue #560, PR #556 by Yuriy Soldatkin
OData Web API v5.8-beta package has a dependency on ODataLib 6.13.
Doc: http://odata.github.io/WebApi/#07-12-5-8-beta
Nuget: https://www.nuget.org/packages/Microsoft.AspNet.OData/5.8.0-beta
v5.7
New Features:
- Pull request [#322](https://github.com//pull/322) by [chinese007](https://github.com/chinese007), [#407](https://github.com//pull/407) by [OData team](https://github.com/OData) : [Add the NextPageLink and Count for collection property.](http://odata.github.io/WebApi/#6-18-AddNextPageLinkAndCountForCollectionProperty) - GitHub Issue [#149](https://github.com//issues/149), Pull request [#379](https://github.com//pull/379) by [OData team](https://github.com/OData) : [Expose HasStream for EntityType configuration.](http://odata.github.io/WebApi/#6-04-streamEntity) - GitHub Issue [#377](https://github.com//issues/377), Pull request [#384](https://github.com//pull/384) by [Bruce Johnston](https://github.com/brjohnstmsft) : Making ODataQueryOptions.GetNextPageLink public. - GitHub Issue [#310](https://github.com//issues/310), Pull request [#399](https://github.com//pull/399) by [OData team](https://github.com/OData) : [Cannot ignore some query options like $skip.](http://odata.github.io/WebApi/#4-16-ignore-query-option) - GitHub Issue [#98](https://github.com//issues/98), [#107](https://github.com//issues/107), [#258](https://github.com//issues/258), Pull request [#405](https://github.com//pull/405) by [OData team](https://github.com/OData) : [Add capabilities vocabulary annotation support](http://odata.github.io/WebApi/#4-14-capabilities-vocabulary-support) - Pull request [#419](https://github.com//pull/419) by [Abhishek Kumar](https://github.com/abkmr) : [Adding support for alternate key Uri resolver.](http://odata.github.io/WebApi/#4-17-Alternate-Key) - GitHub Issue [#408](https://github.com//issues/408), Pull request [#426](https://github.com//pull/426) by [OData team](https://github.com/OData) : [Handling of preference header 'continue-on-error' in user request.](http://odata.github.io/WebApi/#4-20-ContinueOnError) - GitHub Issue [#311](https://github.com//issues/311), Pull request [#428](https://github.com//pull/428) by [OData team](https://github.com/OData) : [Auto expand navigation property.](http://odata.github.io/WebApi/#4-15-autoexpand-attribute) - GitHub Issue [#304](https://github.com//issues/304), Pull request [#444](https://github.com//pull/444) by [OData team](https://github.com/OData) : [Support setting namespaces for operations in ODataConventionModelBuilder.](http://odata.github.io/WebApi/#4-21-Set-namespaces-for-operations)Bug Fixes:
- GitHub Issue #334, Pull request #335 by Matt Johnson : Time zone conversions are not DST aware.
- GitHub Issue #195, Pull request #372 by Brad Cleaver : Navigation link generation for contained navigations.
- GitHub Issue #376, Pull request #386 by OData team : $orderby with duplicate property in odata v4 failed.
- GitHub Issue #387, Pull request #391 by OData team : Can't get untyped enum property.
- GitHub Issue #401, Pull request #402 by CrazyViper : DateTime min and max value serialization problem.
- GitHub Issue #398, Pull request #430 by OData team : Change IsRelaxedMatch's default value to True.
- GitHub Issue #442, Pull request #453 by Ilchert : Checking propetry for null changed from Or to OrElse
- GitHub Issue #447, Pull request #457 by OData team : Keep default behavior for batch error handling.
- GitHub Issue #459, Pull request #474 by OData team : Add concurrency annotation support.
Doc: http://odata.github.io/WebApi/#07-11-5-7
Nuget: https://www.nuget.org/packages/Microsoft.AspNet.OData/5.7.0
v5.6
New Features:
- GitHub Issue #71, Pull request #287 by hotchandanisagar : Add support for Delta Feed serialization in Web API OData.
- Pull request #280 by OData team : Support UnqualifiedNameCall in ODataRoute attribute.
- GitHub Issue #293, Pull request #297 by OData team : DateTime $filter and $orderby EF support.
- GitHub Issue #319 : Convention and Attribute Routing for Dynamic Property. This built upon a previous pull request #222 by Brad Cleaver: Add support for OpenPathSegment
Bug Fixes:
- GitHub Issue #300 : date() and time() function doesn't work with EF.
- GitHub Issue #317, Pull request #340 by OData team : Support nullable referential constraint with conventional model builder.
- GitHub Issue #331, Pull request #336 by OData team : Support nullable enum prefix free in $filter.
- GitHub Issue #281, Pull request #341 by OData team : OData serialization cannot serializer the derived complex types.
- GitHub Issue #330, Pull request #350 by OData team : Dynamic property name is null use convention routing.
- GitHub Issue #214, Pull request #343 by OData team : Issue about Web API model validation.
- GitHub Issue #294, Pull request #323, #332 by OData team : Formatting
<see>true</see>
,<see langword="null"/>
issue in xml comments about true, false, and null.
OData Web API v5.6 package has a dependency on ODataLib 6.11.