Skip to content

Releases: OData/WebApi

7.5.0

18 Sep 22:50
1f48bed
Compare
Choose a tag to compare

V5.10.0

24 Mar 17:58
Compare
Choose a tag to compare

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

14 Sep 05:51
Compare
Choose a tag to compare

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.

V6.0.0-beta

29 Aug 07:32
Compare
Choose a tag to compare

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

01 Aug 01:43
Compare
Choose a tag to compare

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

13 May 07:27
Compare
Choose a tag to compare

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

13 Jan 04:50
Compare
Choose a tag to compare

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

27 Nov 09:01
Compare
Choose a tag to compare
v5.8-beta Pre-release
Pre-release

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

25 Sep 07:36
Compare
Choose a tag to compare

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:

Doc: http://odata.github.io/WebApi/#07-11-5-7
Nuget: https://www.nuget.org/packages/Microsoft.AspNet.OData/5.7.0

v5.6

16 Oct 07:04
Compare
Choose a tag to compare

New Features:

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.