7.17 OData Web API 6.0.0-beta
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
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.
- 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 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.