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. UseNavigationSourceTypeHasNoKeys
validation rule.
Microsoft.OData.Edm
IEdmEntityType EntityType
property introduced inIEdmNavigationSource
interface.- Any implementation of
IEdmNavigationSource
needs to implement theEntityType
property. - The public
EntityType(IEdmNavigationSource)
static method has been marked as obsolete and will be removed in ODL 9.
- Any implementation of