ASP.NET Core OData 8.x changelog
ASP.NET Core OData 8.x is available on the Nuget gallery
You can install or update the NuGet package for ASP.NET Core OData using the Package Manager Console.
Blogs
Samples:
8.2.2
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.2.2
8.2.1
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.2.1
8.2.0
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.2.0
8.1.2
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.1.2
8.1.1
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.1.1
8.1.0
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.1.0
8.0.12
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.0.12
8.0.11
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.0.11
8.0.10
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.0.10
8.0.9
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.0.9
8.0.8
Starting from 8.0.8, we will use the release note on github.
See details at: https://github.com/OData/AspNetCoreOData/releases/tag/8.0.8
8.0.7
- Support DateOnly and TimeOnly for .NET 6
- Simpilify Nullable and non nullable type mapping registration
- Unmapped properties in Delta
- Change query validation to throw ODataException
- Create type annotation only has the type name
- No dollar sign query option setting to resolver
8.0.6
- Make TryGetNestedPropertyValue internal
- Fix 'none OData' -> 'non-OData' typo
8.0.5
- Query option binder refactor.
- Enable $compute query option.
- Enable $search query option, developer needs to implement the ISearchBinder.
- Migrate OData/WebApi#2512 to AspNetCoreOData.
- Trim forward slashes from route prefix.
- Fixed overwriting of the ODataUriResolver, received upstream from DI (e.g. AlternateKeysODataUriResolver).
- Add TryGetNestedPropertyValue in DeltaOfT Be noted: TryGetNestedPropertyValue has been added accidentally as public, it will be internal in the next version. Please use TryGetPropertyValue except TryGetNestedPropertyValue.
- Update the model builder dependency to 1.0.8
- Move the timezone setting for ODataQuerySetting to EnableQuery executing
- Add EnablePropertyNameCaseInsensitive for Conventional routing
- Bump to ODL 7.9.4, Enable property name case-insensitive
8.0.4
be noted: We are still working on refactoring ISelectExpandBinder and other query binders. Be aware of any changes in the next release.
- Fix auto select and expand when baseentity type is null
- Prevent error from duplicating attribute
- Add possibility to bind params of custsom type
- Add IODataTypeMapper
- Bump ODL dependency to 7.9.4, and enable property name case-insensitive by default
- Fix Enum.TryParse exception when using in .NET 6
- Enable case-insensitive in query option by default
- Add AddODataQueryFilter extension methods
8.0.3
- Enable auto expand navigation property on complex type property
- Enable nested resource case insensitive when reading
- Fix behaviour for Preflight requests on the ODataBatchMiddleware
- URedesign SelectExpandBinder to allow customizations
- Bump ODL dependency to 7.9.2
- Refactor ExpressionBinderBase
- Convert.ChangeType invalid cast from System.String to System.Guid
- Fixed issue DateTime Created with too Much Decimal Precision Causing SQL Query to Fail
8.0.2
- DeltaOfT out of sync with WebAPI: missing UpdatableProperties
- Update model builder dependency to 1.0.7
- move the ReadUntypedAsString=false to setting
- Fix issue: filter binder does not use the timezone info from settings
- Fix bug in Filter Any within Expand
- Fix incorrect GetProperties method logic
- Change public virtual to protected virtual for ValidateCountNode
- Add support for $count segment in $filter
8.0.1
- Make methods as virtual in ODataSerializerProvider
- Make methods as virtual in ODataDeserializerProvider
8.0.0
- Change
AddModel()
toAddRouteComponents
, AddEnableQueryFeatures()
in ODataOptions - Remove
IODataBuilder
,DefaultODataBuilder
, EliminateBuilderFactory
and the need for externalContainerBuilder
- Rename
ODataRoutingAttribute
toODataAttributeRoutingAttribute
- Rename
ODataModelAttribute
toODataRouteComponentAttribute
- Remove
NonODataControllerAttribute
andNonODataActionAttribute
and replace them usingODataIgnoredAttribute
- Rename
PrefixName
toRoutePrefix
, RenameSubServiceProvider
toServices
in IODataFeature - Add
ODataOptions()
in HttpContextExtensions and HttpRequestExtensions - Rename
{Get|Create|Delete}SubServiceProvider
to{Get|Create|Delete}RouteServices
in HttpRequestExtensions - Improvement to (de)serialization code, using interface for (de)serializer
- Improve OData debug route and its pattern
- Enable $this query option
- Update dependency to ODL 7.9, ModelBuilder 1.0.6
- Fix AmbiguousMatchException for properties with new modifier
- Add bunch of test cases to increase the code coverage
- Other code clean up, for example, remove
IODataTypeMappingProvider
etc
8.0.0-rc3
- Be noted Breaking changes in ODataSegmentTemplate
- Use ActionName in conventional routing
- Make CreateRef, DeleteRef, GetRef for generic navigation property working
- Support alternate key in attribute routing
- ClrTypeCache has memory leak owing to IEdmTypeReference
- Change ODataOptions by removing unnecessary APIs
- Remove EdmDeltaKind
- Change EdmDeltaLink, EdmDeltaDeletedLink, etc
- Add a config for non-parenthesis of empty parameter function
- Add a config for controller name case insensitive
- Enable string without single quote in key as segment
8.0.0-rc2
- Be noted Move AddOData() to IMvcBuilder and IMvcCoreBuilder
- Move routing conventions to ODataOptions & use options setup
- Add the API for navigation source, navigation property, operation link builder
- Enable payload property case-insensitive
- Remove ContentLength check, support chunked request
- Add SingleResult JSON value converter
- Improve the "EnumTryParse" reflect for .NET 6
- Support long query URL pattern using $query
- Add a OData routing debug middleware. Call
app.UseODataRouteDebug()
to enable it - Count in filter throws not supported
- Retrieve the default query setting
- Fix issue about absolute route template with two selector models
- Reuse WriteObjectInlineAsyc in ODataDeltaResourceSetSerializer
- Create selector model if we have route template on controller
- Improve ConvertPrimtiveValue assert
8.0.0-rc
- Attribute routing: Remove
ODataRouteAttribute
,ODataRoutePrefix
, useRouteAttribute
,HttpGet
,HttpPost
,... for attribute routing - Delta resource set: Add DeltaSetOfT, DeltaT, DeltaLinkT and related interfaces
- Entity Reference: Support odata.bind and odata.id link
- Fix the TimeZone issue when deserializing
- Stream property serialization & stream property query
- Make basic non-Edm scenario working
- Add Json value converter for PageResult, SelectExpandWrapper
- Add Dynamic type wrapper type converter
- Rename IsUntyped to IsNoClrType in Deserializer context
- Rename ODataDeltaFeedSerializer to ODataDeltaResourceSetSerializer
- Retrieve the returned entity set for function from annotation
- Add / prefix for OData route template to prevent mergeing routing template from controller
- Use metadata writer async, change other WriteObjectAsync
- Change the Translate in segment template to TryTranslate
- Remove CompatibilityOptions and code clean
- Add request and timezone to the nested deserializer context
- Change PathTemplateSegment, DynamicSegment
- Add the OData version to reader settings when specified in the request
8.0.0-beta
- Fix the TimeZone issue when serializing
- Add the key/value pair parser
- Set ReadAsUntypedAsString=false
- Fix the query information concurrency problem. #72
- Remove model container and inject Edm model into query wrapper
- Fix the navigation property routing convention http method
- Enhance batch accept header descision
- ResourceContext.ResourceInstance throws exception
- Fix child collection nextlink
- Enable model query in select and expand binder
- Fix invalid location header generated when key property for model contains unicode chars
8.0.0-preview3
Enable CSDL-JSON metadata, use the following ways:
- Query: $format=application/json
- Query: $format=json
- Header: Accept=application/json
Add all attributes to new selector model. #34
Change the Order value for Entity and OperationImport routing convention
Add null check for the model
Remove OmitNullDynanicProperty setting
Remove CompatibilityOptions setting
Change CreatedODataResult and UpdatedODataResult
EnableQuery should perform checks before controller execution. #51
Full serialization and deserialization async
8.0.0-preview2
- Improve key and function segment template
- Remove the GuidCompare
8.0.0-preview
- Implement the new routing convention, see ASP.NET Core OData 8.0 Preview for .NET 5
- Separate the model builder into new OData.ModelBuilder
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for