Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
OData lib is loosely used to refer to the following group of OData libraries available on the Nuget gallery:
You can install or update any of the NuGet packages for OData lib using the Package Manager Console.
8.4.0
- Upgraded version of Windows used on the build pipelines from 2019 to 2022 #3320
- Apply the relevant network isolation policy settings on the build pipelines #3337 & #3341
- Removed unpruned references #3335
Microsoft.OData.Core
- Add support for unquoted
typesparameter inisofandcastURI functions #3317 - Add support for parsing custom query options when present on the OData URI #3318
- Support unencoded slash inside quoted literals such that it's treated as data rather than path segment separators #3340
Microsoft.OData.Core
- Deprecated
IEdmOperation.ReturnType#3330
8.3.0
Microsoft.OData.Core
- Optimize ODataNullValue allocations with singleton implementation #3284
- Support parameter aliases in key segments #3278
- Support more kinds of relative context URIs #3235
8.2.4
Microsoft.OData.Core
- Optimize ODataNullValue allocations with singleton implementation #3284
- Handle null segment type when validating URL #3276
- Avoid redundant verifications when appending new resource properties #3269
- Allow filtering models using
ContainswithEnumcollections #3253 - Update
.NET 9.0Public API #3271 - Enable
$rootpath #3157 - Resolve
FormatExceptionwhen generating strings usingError.Formatorstring.Format#3241 - Enable serialization/deserialization of navigation properties with
countand no content #3155 - Update build pipeline and PR template to reflect CI build instructions #3243
- Set
ElementTypeReferencefrom current navigation property #3239 FunctionCallBinderreturnsSingleValueFunctionCallNodefor complex types #3234- Support
Averageaggregation method forInt16inUriParser#3168 - Remove vulnerable and unused assemblies #3211
- Enable
$select=colProperty/$countquery option parsing #3175 - Fix
$filterfor collection of dynamic primitive values #3190 - Migrate code signing to ESRPv5 #3184
- Update NuGet release notes changelog URL #3179
- Add
net9.0support #3171 - Add README to
.nuspec#3152 - Replace usage of resource files for error messages #3146
- Port E2E tests to 8.0 in #3042, #3046, #3048, #3251, #3223, #3231, #3225, #3220, #3210, #3208, #3202, #3203, #3164, #3195, #3194, #3187, #3180, #3177, #3176, #3163, #3169, #3161, #3160, #3159, #3172, #3167, #3156
Microsoft.OData.Edm
- Fix
IEdmModel.GetTargetPathtype cast error for properties namedGeography#3218 - Fix endless loop when
Schematag has no correctxmlnsvalue #3192
Microsoft.OData.Client
- Track
DependsOnIdswhenUseJsonBatchflag is applied to batch requests #3272
8.2.3
Microsoft.OData.Core
- Remove
#if NETCOREAPPdirectives after migrating to .NET 8 #3128 - Update package metadata to address security vulnerability #3129
- Allow responses without an associated entity set #3137
- Include README in NuGet package #3143
- Fix
ArgumentNullExceptionfor$filter=property in ['']expression #3122 - Support parameter aliases in key segments 3278
- General code cleanup #3142
- Remove backup files
- Remove outdated .NET Core-related code
- Add
Microsoft.CodeAnalysis.NetAnalyzersfor static code analysis
Microsoft.OData.Client
- Add
DependsOnIdparameter inAddRelatedObjectAPI #3079 - Mark
Timeoutproperty as obsolete and recommend usingIHttpClientFactory#3135
8.2.2
Microsoft.OData.Core
- Continue replacing substring in
HttpHeaderValueLexerto resolve parsing issue #3097 - Throw exception when an undefined enum member is used with the
inoperator #3125 - Revert fix for
isofwith unquoted type parameters due to regression #3126
Microsoft.OData.Edm
- Fix line number reporting when parsing CSDL with multi-line reference elements #3118
- Prevent
StackOverflowExceptionwhen retrieving navigation partners in large CSDL models #3121
8.2.1
Microsoft.OData.Edm
- Report accurate line numbers for multi-line elements in payloads #3115
8.2.0
Microsoft.OData.Core
- Add writer validation tests for failure scenarios #3083
- Optimize string handling by replacing
new string(...)withReadOnlySpan<char>#3077 - Remove incorrect target framework in NuGet specification #3096
- Improve expression support for dynamic properties #3091
- Do not force flush when
ODataUtf8JsonWriterbuffer threshold is reached #3102 - Fix unquoted type parameters in
isofexpressions #3108
Microsoft.OData.Client
- Fix issue where entity with enum key could not be attached to
DataServiceContext#3106
8.1.0
Microsoft.OData.Core
- Fix code coverage analysis in test projects #3074
- Enable support for
DateOnlyandTimeOnlyprimitives #3078
Microsoft.OData.Edm
- Fix issue when writing large metadata documents asynchronously #3081
- Update Core Vocabulary to include
IsDeltaterm #3087
8.0.2
Microsoft.OData.Core
- Support type cast in group in #3041
- Update message writer and reader to ignore Message info from DI #3058
- Add support for "Any" and Predicates method call expressions in #3061
- Isolate scoped settings in default OData services in #3071
- Port E2E tests to 8.0 in #3042, #3046, #3048
- Add ODataPathInfo tests by @gathogojr in #3053
8.0.1
Microsoft.OData.Core
- Fix error that occurs when you check whether a string or integer literal is in an enum collection in #3039
- Fix argument null exception during projection when expanded navigation property is null in #3038
8.0.0
Microsoft.OData.Core
- Add Microsoft.Extensions.Http dependency in #3035
- Replace
IsTypeusingIsOfto align with the OData standard in #3025 - Remove obsolete ReadUntypedAsString and address string comparison warnings in #3024
- Support enum as integer value (enclosed and not enclosed with single quotes) in
$filterin #3018 - Port E2E tests in #3017, #3028
- Support enums as keys in OData client in #3013
- Provide async APIs for CsdlWriter and SchemaWriter in #3006
- Remove references to ATOM in #2972
8.0.0-rc.1
Microsoft.OData.Core
- Made
ODataUtf8JsonWriterthe default JSON writer implementation to enhance serialization performance. Benchmarks and feedback from some OData users have shown thatODataUtf8JsonWriteroffers better performance and memory efficiency compared to the current default JsonWriter. - Changed the
ODataLibraryCompatibilityenum into a flags enum, where each bit represents a different compatibility setting that can enable some legacy serialization behavior. - Refactored
ODataError,ODataErrorDetailandODataInnerErrorclasses.- The
ODataErrorDetail’sErrorCodeproperty updated to Code - The initialization of
ODataInnerErrorchanged toODataInnerError(new Dictionary<string, ODataValue>())
- The
- The
ODataResource.Propertiesproperty type was changed toIEnumerable<ODataPropertyInfo>to facilitate metadata reading or writing, even in scenarios where the property lacks a value. - When writing the
Scaleattribute in XML CSDL, usevariablein lowercase instead ofVariable. An enum flag,UseLegacyVariableCasing, was added to support the legacy behavior.
Microsoft.OData.Edm
- Added
UsesDefaultproperty toIEdmVocabularyAnnotationto support creating vocabulary annotations without explicit values but with default values. These default values are not written to the CSDL but can be read.
Microsoft.OData.Client
- Renamed
IBaseEntityType.ContexttoDataServiceContextto avoid naming conflicts that cause compilation or runtime errors whenContextis used as a property name in customer schemas.
8.0.0-preview.1
Starting version 8, OData lib will only target .NET 8 or later.
Microsoft.OData.Core
IJsonReaderAsyncinterface has been merged intoIJsonReaderinterface.- Any implementation of
IJsonReaderneeds to implement methods previously defined inIJsonReaderAsyncinterfaces. - The
Valueproperty inIJsonReaderinterface is replaced byGetValuemethod.
- Any implementation of
IJsonReaderFactoryAsyncinterface has been dropped.IJsonStreamWriter,IJsonWriterAsyncandIJsonStreamWriterAsyncinterfaces have been merged intoIJsonWriterinterface.- Any implementation of
IJsonWriterneeds to implement methods previously defined inIJsonStreamWriter,IJsonWriterAsyncandIJsonStreamWriterAsyncinterfaces.
- Any implementation of
IStreamBasedJsonWriterFactoryandIJsonWriterFactoryAsyncinterfaces has been dropped.DefaultStreamBasedJsonWriterFactoryclass has been renamed toODataUtf8JsonWriterFactory.CreateJsonWriter(TextReader, bool)defined inIJsonWriterFactoryhas changed toCreateJsonWriter(Stream, bool, Encoding). The method now accepts aStreamrather than aTextReader.List<ODataUrlValidationMessage> Messagesproperty defined inODataUrlValidationContextclass has changed toIReadOnlyList<ODataUrlValidationMessage> Messages.AddMessage(ODataUrlValidationMessage)overload introduced inODataUrlValidationContext.
INavigationSourceSegmentinterface introduced. The purpose of this new interface is to reduce casting when determining the navigation source associated with the segment.EntitySetSegment,SingletonSegmentandNavigationPropertySegmentimplement this new interface.- Deprecated support for JSONP callback. Feature to be removed in ODL 9.
JsonPCallbackproperty defined inODataMessageWriterSettingsclass marked as obsolete.StartPaddingFunctionScopemethod defined inIJsonWriterinterface marked as obsolete.EndPaddingFunctionScopemethod defined inIJsonWriterinterface marked as obsolete.WritePaddingFunctionNamemethod defined inIJsonWriterinterface marked as obsolete.StartPaddingFunctionScopeAsyncmethod defined inIJsonWriterinterface marked as obsolete.EndPaddingFunctionScopeAsyncmethod defined inIJsonWriterinterface marked as obsolete.WritePaddingFunctionNameAsyncmethod defined inIJsonWriterinterface marked as obsolete.
ODataSimplifiedOptionsclass 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, andODataUriParserSettingsmay variously be used to accomplish the same purpose.EnableReadingKeyAsSegmentandEnableReadingODataAnnotationWithoutPrefixproperties moved toODataMessageReaderSettingsclass.EnableWritingKeyAsSegmentproperty moved toODataMessageWriterSettingsclass.SetOmitODataPrefix(bool),SetOmitODataPrefix(bool, ODataVersion),GetOmitODataPrefix(), andGetOmitODataPrefix(ODataVersion)methods moved toODataMessageWriterSettingsclass.EnableParsingKeyAsSegmentproperty moved toODataUriParserSettingsclass.
- In ODL 7, when
ODataBinaryStreamValueclass 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> ShouldIncludeAnnotationproperty 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-annotationspreference token inPreferrequest header.IContainerBuilderinterface used when registering OData services was dropped. UseMicrosoft.Extensions.DependencyInjectionlibrary instead.AddDefaultODataServices(IServiceCollection, ODataVersion, Action<ODataMessageReaderSettings>, Action<ODataMessageWriterSettings>, Action<ODataUriParserSettings>)extension method introduced for the purpose of registering OData services.IContainerProviderinterface replaced byIServiceCollectionProviderinterface. It's a provider for theIServiceProviderIoC container.ODataBatchOperationRequestMessagenow implementsIServiceCollectionProviderinstead ofIContainerProvider.ODataBatchOperationResponseMessagenow implementsIServiceCollectionProviderinstead ofIContainerProvider.
Microsoft.OData.Client
HttpWebRequestMessageclass has been dropped - effectively dropping support forHttpWebRequest. UseHttpClientRequestMessageclass instead.IHttpClientHandlerProviderinterface used to provideHttpClientHandlerfor use withDataServiceContexthas been dropped.HttpClientHandlerProviderproperty defined inDataServiceClientRequestMessageArgsclass and used for providingHttpClientHandlersubstituted withHttpClientFactoryproperty that accomplishes the same purpose.HttpClientHandlerProviderproperty defined inDataServiceContextclass and used for providingHttpClientHandlersubstituted withHttpClientFactoryproperty that accomplishes the same purpose.- Obsolete
Credentialsproperty dropped fromDataServiceClientRequestMessageabstract class. The recommended way to configure credentials is throughHttpClientHandlerthat can be provided usingIHttpClientFactory. - Obsolete
Credentialsproperty dropped fromHttpClientRequestMessageclass. The recommended way to configure credentials is throughHttpClientHandlerthat can be provided usingIHttpClientFactory. - Obsolete
Credentialsproperty dropped fromDataServiceContextclass. The recommended way to configure credentials is throughHttpClientHandlerthat can be provided usingIHttpClientFactory. - Obsolete
ReadWriteTimeoutproperty dropped fromDataServiceClientRequestMessageabstract class. This property would be used withHttpWebRequestMessage.Timeoutproperty may be used instead. - Obsolete
ReadWriteTimeoutproperty dropped fromHttpClientRequestMessageclass. This property would be used withHttpWebRequestMessage.Timeoutproperty may be used instead. - In
DataServiceClientRequestMessageArgsclass, theDataServiceClientRequestMessageArgs(string, Uri, bool, bool, IDictionary<string, string>)constructor has changed toDataServiceClientRequestMessageArgs(string, Uri, bool, IDictionary<string, string>). The booleanuseDefaultCredentialsparameter is no longer supported. - In
DataServiceClientRequestMessageArgsclass, theDataServiceClientRequestMessageArgs(string, Uri, bool, bool, IDictionary<string, string>, IHttpClientHandlerProvider)constructor has changed toDataServiceClientRequestMessageArgs(string, Uri, bool, IDictionary<string, string>, IHttpClientFactory). The booleanuseDefaultCredentialsparameter is no longer supported. - In
DataServiceClientRequestMessageArgsclass, theUseDefaultCredentialsproperty dropped fromDataServiceClientRequestMessageArgsclass. The recommended way to configure credentials is throughHttpClientHandlerthat can be provided usingIHttpClientFactory. HttpRequestTransportModeenum property was dropped fromDataServiceContext. This property was used to switch betweenHttpClientandHttpWebRequestthat was dropped.KeyComparisonGeneratesFilterQueryflag defined inDataServiceContextclass marked as deprecated. Flag will be removed in ODL 9.- Default value for
keyComparisonGeneratesFilterQueryflag set to true such that aWhereexpression with only the key property in the predicate is translated into a$filterquery 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
TotalCountproperty was dropped fromQueryOperationResponseclass. UseCountproperty. - Obsolete
TotalCountproperty was dropped fromQueryOperationResponse<T>class. UseCountproperty. - Obsolete
CreateODataDeltaReader(IEdmEntitySetBase, IEdmEntityType)method dropped fromODataMessageReaderclass. UseCreateODataDeltaResourceSetReader(IEdmEntitySetBase, IEdmStructuredType)method. - Obsolete
CreateODataDeltaReaderAsync(IEdmEntitySetBase, IEdmEntityType)method dropped fromODataMessageReaderclass. UseCreateODataDeltaResourceSetReader(IEdmEntitySetBase, IEdmStructuredType)method. - Obsolete
CreateODataDeltaWriter(IEdmEntitySetBase, IEdmEntityType)method dropped fromODataMessageReaderclass. UseCreateODataDeltaResourceSetWriter(IEdmEntitySetBase, IEdmStructuredType)method. - Obsolete
CreateODataDeltaWriterAsync(IEdmEntitySetBase, IEdmEntityType)method dropped fromODataMessageReaderclass. UseCreateODataDeltaResourceSetWriterAsync(IEdmEntitySetBase, IEdmStructuredType)method. - Obsolete
Expressionsproperty dropped fromAggregateTokenclass. UseAggregateExpressionsproperty. - Obsolete
Expressionsproperty dropped fromAggregateTransformationNodeclass. UseAggregateExpressionsproperty. - Obsolete
EntityTypeInvalidKeyKeyDefinedInBaseClassvalidation rule dropped fromValidationRulesclass. UseEntityTypeInvalidKeyKeyDefinedInAncestorvalidation rule. - Obsolete
EntityTypeKeyMissingOnEntityTypevalidation rule dropped fromValidationRulesclass. UseNavigationSourceTypeHasNoKeysvalidation rule.
Microsoft.OData.Edm
IEdmEntityType EntityTypeproperty introduced inIEdmNavigationSourceinterface.- Any implementation of
IEdmNavigationSourceneeds to implement theEntityTypeproperty. - The public
EntityType(IEdmNavigationSource)static method has been marked as obsolete and will be removed in ODL 9.
- Any implementation of