Releases: genexuslabs/Simple.OData.Client
6.0.2 — Expose Expand(IEnumerable<ODataExpandAssociation>)
Minor release adding one public API on the fluent client surface.
IFluentClient<T,FT>.Expand(IEnumerable<ODataExpandAssociation>) (plus the ODataExpandOptions twin). FluentCommand has accepted ODataExpandAssociation collections for a while, but the fluent
client only took strings or ODataExpression and built the associations internally via ODataExpandAssociation.From — consumers never saw the resulting objects, so attaching a per-expansion
FilterExpression or OrderByColumns required reaching into Command.Details via reflection.
The new overload forwards directly to the existing FluentCommand.Expand, so behaviour is unchanged for current callers.
6.0.1 — Fix Microsoft.Data.OData dependency floor
Fix
The nuspec dependency Microsoft.Data.OData version="[5.*, 6.0.0)" shipped in 6.0.0 had a subtle bug: NuGet's 5.* wildcard floats to the highest 5.x in a PackageReference but is interpreted as the
minimum of the version range in a .nuspec dependency element. Fresh installs of 6.0.0 therefore pulled Microsoft.Data.OData 5.0.0.50403, which has the high-severity advisory
GHSA-mv2r-q4g5-j8q5.
Pin the lower bound to 5.8.4 (the last vulnerability-free 5.x).
Resync with upstream + minimum GeneXus customizations
First release of the 6.0-GX line.
Resyncs the fork with upstream simple-odata-client/Simple.OData.Client main after 3+ years of divergence on the 5.2-GX line, and
re-applies the minimum set of GeneXus customizations on top.
Highlights
- Targets netstandard2.0, net7.0, net8.0 (dropped net452).
- Microsoft.Data.OData range loosened to
[5.*, 6.0.0)(matches upstream's V3 adapter pin; floats to the latest 5.x, vulnerability-free). - SAP B1 quirks preserved:
ODataClientSettings.ExtraProperties.STRINGIZE_DATETIME_VALUESopt-in to wrap DateTime URI literals in single quotes.- V3-style select on expanded entities via the
~→/escape.
- V3 Metadata TripPin-style fallback in
TryGetEntityTypepreserved. ODataExpression.ProcessFilter(session, collection)decomposition helper kept for consumers that need to split cross-entity filter expressions.
Breaking changes vs 5.2-GX
- The custom per-entity Filter machinery on
FluentCommand/CommandDetailsis gone. Upstream now provides this natively viaODataExpandAssociation { FilterExpression = ... }. Downstream
consumers (GxClasses) need to migrate fromBoundClient.ExpandMap(...)+ auto-decomposedFilter(expression)to buildingODataExpandAssociationobjects withFilterExpressionpopulated (using
ProcessFilterfor decomposition when needed). Simple.OData.Client.Dynamicpackage removed (upstream dropped it).net452no longer supported.
5.2.3.8
5.2.3.7
5.2.3.5
5.2.3.4
5.2.3.3
5.2.3.2
5.2.3.1
-
Optimize always-true filters
Sap B1 requires that at least one property be involved in the filter, but this library may generate "true" filters. Here que remove those filters
-
Add support for V3-style select on expanded entities
Sap B1 does not support V4-style select on expanded entitites, but does allow V3 style
-
Add support for Extra Properties on ODataClientSettings
At this point it is used to allow for Sap B1 services to stringize datetime values as the service is not allowing proper datetimes but it does accept single-quoted ones
-
Prevent key properties to be added to the OrderBy clause as they are instantiated
-
Optimize not-not filters
-
Optimize not(exp or exp) filters.
The idea is to be able to properly assign parts of the filter to the required entities:
E.g. where ExpA contains properties of one entity and ExpB of another:
not(not(ExpA and ExpB)) -> 2 filters: ExpA ExpB
not(ExpA or ExpB) -> 2 filters: not(ExpA) not(ExpB)