Releases: OData/odata.net
Releases · OData/odata.net
ODL 8.0.0-preview.1
Starting version 8, OData lib will only target .NET 8 or later.
Microsoft.OData.Core
IJsonReaderAsync
interface has been merged intoIJsonReader
interface.- Any implementation of
IJsonReader
needs to implement methods previously defined inIJsonReaderAsync
interfaces. - The
Value
property inIJsonReader
interface is replaced byGetValue
method.
- Any implementation of
IJsonReaderFactoryAsync
interface has been dropped.IJsonStreamWriter
,IJsonWriterAsync
andIJsonStreamWriterAsync
interfaces have been merged intoIJsonWriter
interface.- Any implementation of
IJsonWriter
needs to implement methods previously defined inIJsonStreamWriter
,IJsonWriterAsync
andIJsonStreamWriterAsync
interfaces.
- Any implementation of
IStreamBasedJsonWriterFactory
andIJsonWriterFactoryAsync
interfaces has been dropped.DefaultStreamBasedJsonWriterFactory
class has been renamed toODataUtf8JsonWriterFactory
.CreateJsonWriter(TextReader, bool)
defined inIJsonWriterFactory
has changed toCreateJsonWriter(Stream, bool, Encoding)
. The method now accepts aStream
rather than aTextReader
.List<ODataUrlValidationMessage> Messages
property defined inODataUrlValidationContext
class has changed toIReadOnlyList<ODataUrlValidationMessage> Messages
.AddMessage(ODataUrlValidationMessage)
overload introduced inODataUrlValidationContext
.
INavigationSourceSegment
interface introduced. The purpose of this new interface is to reduce casting when determining the navigation source associated with the segment.EntitySetSegment
,SingletonSegment
andNavigationPropertySegment
implement this new interface.- Deprecated support for JSONP callback. Feature to be removed in ODL 9.
JsonPCallback
property defined inODataMessageWriterSettings
class marked as obsolete.StartPaddingFunctionScope
method defined inIJsonWriter
interface marked as obsolete.EndPaddingFunctionScope
method defined inIJsonWriter
interface marked as obsolete.WritePaddingFunctionName
method defined inIJsonWriter
interface marked as obsolete.StartPaddingFunctionScopeAsync
method defined inIJsonWriter
interface marked as obsolete.EndPaddingFunctionScopeAsync
method defined inIJsonWriter
interface marked as obsolete.WritePaddingFunctionNameAsync
method defined inIJsonWriter
interface marked as obsolete.
ODataSimplifiedOptions
class was dropped. This class would be injected into the DI container and the settings used to control behaviour when parsing URLs, and when writing and reading payloads. In ODL 8,ODataMessageReaderSettings
,ODataMessageWriterSettings
, andODataUriParserSettings
may variously be used to accomplish the same purpose.EnableReadingKeyAsSegment
andEnableReadingODataAnnotationWithoutPrefix
properties moved toODataMessageReaderSettings
class.EnableWritingKeyAsSegment
property moved toODataMessageWriterSettings
class.SetOmitODataPrefix(bool)
,SetOmitODataPrefix(bool, ODataVersion)
,GetOmitODataPrefix()
, andGetOmitODataPrefix(ODataVersion)
methods moved toODataMessageWriterSettings
class.EnableParsingKeyAsSegment
property moved toODataUriParserSettings
class.
- In ODL 7, when
ODataBinaryStreamValue
class is initialized using theODataBinaryStreamValue(Stream)
constructor, the stream is left open by default upon the object being disposed. In ODL 8, the stream is closed by default the object objects is disposed. TheODataBinaryStreamValue(Stream, bool)
constructor overload may be used where leaving the stream open is intended. Func<string, bool> ShouldIncludeAnnotation
property introduced inODataMessageWriterSettings
. This property makes it possible for developers to force a custom instance annotation to be written even if it's not include in the optional@odata.include-annotations
preference token inPrefer
request header.IContainerBuilder
interface used when registering OData services was dropped. UseMicrosoft.Extensions.DependencyInjection
library instead.AddDefaultODataServices(IServiceCollection, ODataVersion, Action<ODataMessageReaderSettings>, Action<ODataMessageWriterSettings>, Action<ODataUriParserSettings>)
extension method introduced for the purpose of registering OData services.IContainerProvider
interface replaced byIServiceCollectionProvider
interface. It's a provider for theIServiceProvider
IoC container.ODataBatchOperationRequestMessage
now implementsIServiceCollectionProvider
instead ofIContainerProvider
.ODataBatchOperationResponseMessage
now implementsIServiceCollectionProvider
instead ofIContainerProvider
.
Microsoft.OData.Client
HttpWebRequestMessage
class has been dropped - effectively dropping support forHttpWebRequest
. UseHttpClientRequestMessage
class instead.IHttpClientHandlerProvider
interface used to provideHttpClientHandler
for use withDataServiceContext
has been dropped.HttpClientHandlerProvider
property defined inDataServiceClientRequestMessageArgs
class and used for providingHttpClientHandler
substituted withHttpClientFactory
property that accomplishes the same purpose.HttpClientHandlerProvider
property defined inDataServiceContext
class and used for providingHttpClientHandler
substituted withHttpClientFactory
property that accomplishes the same purpose.- Obsolete
Credentials
property dropped fromDataServiceClientRequestMessage
abstract class. The recommended way to configure credentials is throughHttpClientHandler
that can be provided usingIHttpClientFactory
. - Obsolete
Credentials
property dropped fromHttpClientRequestMessage
class. The recommended way to configure credentials is throughHttpClientHandler
that can be provided usingIHttpClientFactory
. - Obsolete
Credentials
property dropped fromDataServiceContext
class. The recommended way to configure credentials is throughHttpClientHandler
that can be provided usingIHttpClientFactory
. - Obsolete
ReadWriteTimeout
property dropped fromDataServiceClientRequestMessage
abstract class. This property would be used withHttpWebRequestMessage
.Timeout
property may be used instead. - Obsolete
ReadWriteTimeout
property dropped fromHttpClientRequestMessage
class. This property would be used withHttpWebRequestMessage
.Timeout
property may be used instead. - In
DataServiceClientRequestMessageArgs
class, theDataServiceClientRequestMessageArgs(string, Uri, bool, bool, IDictionary<string, string>)
constructor has changed toDataServiceClientRequestMessageArgs(string, Uri, bool, IDictionary<string, string>)
. The booleanuseDefaultCredentials
parameter is no longer supported. - In
DataServiceClientRequestMessageArgs
class, theDataServiceClientRequestMessageArgs(string, Uri, bool, bool, IDictionary<string, string>, IHttpClientHandlerProvider)
constructor has changed toDataServiceClientRequestMessageArgs(string, Uri, bool, IDictionary<string, string>, IHttpClientFactory)
. The booleanuseDefaultCredentials
parameter is no longer supported. - In
DataServiceClientRequestMessageArgs
class, theUseDefaultCredentials
property dropped fromDataServiceClientRequestMessageArgs
class. The recommended way to configure credentials is throughHttpClientHandler
that can be provided usingIHttpClientFactory
. HttpRequestTransportMode
enum property was dropped fromDataServiceContext
. This property was used to switch betweenHttpClient
andHttpWebRequest
that was dropped.KeyComparisonGeneratesFilterQuery
flag defined inDataServiceContext
class marked as deprecated. Flag will be removed in ODL 9.- Default value for
keyComparisonGeneratesFilterQuery
flag set to true such that aWhere
expression with only the key property in the predicate is translated into a$filter
query rather a resouce URL for requesting a single entity.
- Default value for
- Obsolete
IncludeTotalCount()
method was dropped fromDataServiceQuery<TElement>
class. UseIncludeCount()
method. - Obsolete
IncludeTotalCount(bool)
method was dropped fromDataServiceQuery<TElement>
class: UseIncludeCount(bool)
the method. - Obsolete
TotalCount
property was dropped fromQueryOperationResponse
class. UseCount
property. - Obsolete
TotalCount
property was dropped fromQueryOperationResponse<T>
class. UseCount
property. - Obsolete
CreateODataDeltaReader(IEdmEntitySetBase, IEdmEntityType)
method dropped fromODataMessageReader
class. UseCreateODataDeltaResourceSetReader(IEdmEntitySetBase, IEdmStructuredType)
method. - Obsolete
CreateODataDeltaReaderAsync(IEdmEntitySetBase, IEdmEntityType)
method dropped fromODataMessageReader
class. UseCreateODataDeltaResourceSetReader(IEdmEntitySetBase, IEdmStructuredType)
method. - Obsolete
CreateODataDeltaWriter(IEdmEntitySetBase, IEdmEntityType)
method dropped fromODataMessageReader
class. UseCreateODataDeltaResourceSetWriter(IEdmEntitySetBase, IEdmStructuredType)
method. - Obsolete
CreateODataDeltaWriterAsync(IEdmEntitySetBase, IEdmEntityType)
method dropped fromODataMessageReader
class. UseCreateODataDeltaResourceSetWriterAsync(IEdmEntitySetBase, IEdmStructuredType)
method. - Obsolete
Expressions
property dropped fromAggregateToken
class. UseAggregateExpressions
property. - Obsolete
Expressions
property dropped fromAggregateTransformationNode
class. UseAggregateExpressions
property. - Obsolete
EntityTypeInvalidKeyKeyDefinedInBaseClass
validation rule dropped fromValidationRules
class. UseEntityTypeInvalidKeyKeyDefinedInAncestor
validation rule. - Obsolete
EntityTypeKeyMissingOnEntityType
validation rule dropped fromValidationRules
class. Use `NavigationSourceT...
ODL 7.21.0
What's Changed
- Fix memory regression in DuplicatePropertyNameChecker by @habbes in #2834
- Fixes #2829: support built-in function in $orderby. by @xuzhg in #2830
- Add flag to skip property verification in
ODataResource
by @habbes in #2812 - Rename master to main by @habbes in #2847
- Optimize
ODataPath
operations by @habbes in #2835 - Create test cases and benchmarks for writing large json base64 and string values by @habbes in #2849
- Fix DeepInsert issue with matching RelatedDescriptors to NestedItems.… by @uffelauesen in #2782
- Support writing large json base64 and string values by @ElizabethOkerio in #2846
- Fix E2E tests failure by @gathogojr in #2903
- Throw an ODataException with helpful message when type name in context URL is not qualified by @gathogojr in #2892
- #2913 switch to license expression by @thompson-tomo in #2914
- Fix EdmTargetPath property collections by @KenitoInc in #2922
- implement streaming api in ODataUtf8JsonWriter (#2880) by @ElizabethOkerio in #2931
New Contributors
- @thompson-tomo made their first contribution in #2914
Full Changelog: 7.20.0...7.21.0
ODL 7.20.0
What's Changed
- Slight performance improvement for
IEdmNavigationSource.EntityType()
by @habbes in #2808 - Add index-based access to ODataPath by @habbes in #2811
- fixes #2785: support property instance annotation without property value by @xuzhg in #2786
- Feature IEdmTargetPath to support path to a model element by @KenitoInc in #2769
- Fixes #2693: Does not work for reading value for untyped property with odata.type annotated by @xuzhg in #2694
- Fix NRE in CompareElements by @whoaskedfrfr in #2824
- Micro-optimization for
IsPrimitiveType
by @habbes in #2810 - Increment build version to 7.20.0 by @KenitoInc in #2826
New Contributors
- @whoaskedfrfr made their first contribution in #2824
Full Changelog: 7.19.0...7.20.0
ODL 7.19.0
What's Changed
- added a script to automate creating a release branch and associated pr by @corranrogue9 in #2695
- client support for custom uri functions by @uffelauesen in #2631
- Fixes #2774: set the identifier for segments by @xuzhg in #2775
- fix issue #2771 : fix method InBinder.ProcessSingleQuotedStringItem by @paku-he in #2773
- Upgrade Microsoft.Bcl.AsyncInterfaces dependency to 7.0.0 by @gathogojr in #2788
- Fix issue in parsing OData core vocabulary by @gathogojr in #2779
- Fix delta deleted entry deserialization failure observed when reason appears before id in payload by @gathogojr in #2787
- Upgrade Microsoft.Bcl.AsyncInterfaces dependency to 8.0.0 by @gathogojr in #2793
- updated odata.context computation to remove trailing cast segments by @corranrogue9 in #2681
- Use same format as JsonWriter when serializing DateTimeOffset with ODataUtf8JsonWriter by @habbes in #2755
- Support deserialization of OData error with multiple items in the error details collection by @gathogojr in #2799
- Reduce buffer allocations by @habbes in #2792
- Add
BufferSize
property toODataMessageWriterSettings
- Bump version to 7.19.0 by @habbes in #2809
New Contributors
Full Changelog: 7.18.0...7.19.0
ODL 7.18.0
What's Changed
- Fixed the http attribute handling of Batch Requests by @apiaskowski in #2669
- Fix compiler error in SerializationComparisonsTests benchmarks by @habbes in #2708
- Fixed the handling of empty http attributes in Batch Requests by @apiaskowski in #2705
- Add SECURITY.md containing instructions for reporting security bugs by @gathogojr in #2710
- feature/Deep insert response by @KenitoInc in #2691
- Support $filter=dynamicProperty in ('') by @KenitoInc in #2711
- Remove sync I/O from JsonValueUtils async write methods by @habbes in #2707
- added a custom trace listener to test projects that handles Debug.A… by @corranrogue9 in #2676
- update CI pipeline to run both Debug and Release configurations by @corranrogue9 in #2677
- Rename AAD to Entra ID by @gathogojr in #2709
- Add support for NaN and infinity to ODataUtf8JsonWriter by @habbes in #2729
- Feature/deep insert async by @KenitoInc in #2716
- Update version to 7.18.0 by @habbes in #2731
New Contributors
- @apiaskowski made their first contribution in #2669
Full Changelog: 7.17.0...7.18.0
ODL 7.17.0
What's Changed
- Fix nightly hang issue by @ElizabethOkerio in #2670
- Fix nuget installer issue by @ElizabethOkerio in #2671
- Feature/deep insert request by @KenitoInc in #2653
- Implement IAsyncDisposable for ODataMessageWriter by @habbes in #2683
- Fix issue in finding navigation target for type segment present in OData path by @gathogojr in #2690
Full Changelog: 7.16.0...7.17.0
ODL 7.16.0
What's Changed
- bulk update request by @ElizabethOkerio in #2561
- Fix function path validation by @quanterion in #2635
- Fix JsonElementValue support edge cases and bugs by @habbes in #2652
- Feature/read bulk updates by @ElizabethOkerio in #2627
- add bulkupdateasync by @ElizabethOkerio in #2655
- fixes #2659: Support declared Edm.Untyped property serialization using ODataPrimitiveValue, etc by @xuzhg in #2664
- fixes #2661. Write the nested resource within nested collection in collection by @xuzhg in #2666
- Update the release version to 7.15.16 by @xuzhg in #2667
New Contributors
- @quanterion made their first contribution in #2635
Full Changelog: 7.15.0...7.16.0
ODL 7.15.0
What's Changed
- Add support for writing JsonElement values in ODataWriter by @habbes in #2619
- Fix ArgumentException regression in ProjectPlanCompiler by @habbes in #2624
- support reading relative context urls with bulk updates by @ElizabethOkerio in #2618
- Cache container elements in ODataUriResolver model elements cache by @habbes in #2623
- Update version to 7.15.0 by @habbes in #2629
Full Changelog: 7.14.1...7.15.0
ODL 7.14.1
What's Changed
- Bump Newtonsoft.Json from 13.0.1 to 13.0.2 in /tools/perf/ResultsComparer/src/ResultsComparer by @dependabot in #2579
- fix: ExpressionWriter only prepend slash to method when we have a parent by @uffelauesen in #2572
- Ported DataServiceContext.AutoNullPropagation from V3 ODL by @uffelauesen in #2573
- IncrementVersion.ps1 fixes by @corranrogue9 in #2581
- Bump to 7.14.0 by @lisicase in #2588
- adding documentation for the release process by @corranrogue9 in #2393
- Capability to close ODataBinaryStreamValue stream after serialization by @syprieur in #2597
- fixes #2601: AddDefaultODataServices should pass OData version to low layer by @xuzhg in #2602
- fixes #2607: The ConstantNode from CollectionConstantNode returns type full name in LiteralText property by @xuzhg in #2609
- Update Validation Vocabulary by @mikepizzo in #2612
- Create cache to speed up case-insensitive look up of schema elements by @habbes in #2610
- Flush out release process documentation by @lisicase in #2600
- Add vocabulary terms to Require Explicit Binding by @lisicase in #2614
- Fix broken link by @KenitoInc in #2616
- fixes #2598, Composite key entities PUT,PATCH URIs generated by OData Client do not follow key order by @xuzhg in #2603
- Increment version number and update public api txt files by @KenitoInc in #2615
New Contributors
- @uffelauesen made their first contribution in #2572
Full Changelog: 7.13.0...7.14.1
ODL 7.14.0
What's Changed
- fix: ExpressionWriter only prepend slash to method when we have a parent by @uffelauesen in #2572
- Ported DataServiceContext.AutoNullPropagation from V3 ODL by @uffelauesen in #2573
New Contributors
- @uffelauesen made their first contribution in #2572
NuGet Packages
Microsoft.Spatial 7.14.0
Microsoft.OData.Edm 7.14.0
Microsoft.OData.Core 7.14.0
Microsoft.OData.Client 7.14.0
Full Changelog: 7.13.0...7.14.0