Skip to content

Releases: genexuslabs/Simple.OData.Client

6.0.2 — Expose Expand(IEnumerable<ODataExpandAssociation>)

19 May 19:54

Choose a tag to compare

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

19 May 18:24

Choose a tag to compare

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

19 May 17:37

Choose a tag to compare

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_VALUES opt-in to wrap DateTime URI literals in single quotes.
    • V3-style select on expanded entities via the ~/ escape.
  • V3 Metadata TripPin-style fallback in TryGetEntityType preserved.
  • 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 / CommandDetails is gone. Upstream now provides this natively via ODataExpandAssociation { FilterExpression = ... }. Downstream
    consumers (GxClasses) need to migrate from BoundClient.ExpandMap(...) + auto-decomposed Filter(expression) to building ODataExpandAssociation objects with FilterExpression populated (using
    ProcessFilter for decomposition when needed).
  • Simple.OData.Client.Dynamic package removed (upstream dropped it).
  • net452 no longer supported.

5.2.3.8

23 Jul 23:16
7bc47b2

Choose a tag to compare

This version is identical to version 5.2.3.7

5.2.3.7

23 Jul 23:07
2cf2052

Choose a tag to compare

This version is identical to versions 5.2.3.5 and 5.2.3.6

5.2.3.5

09 Oct 23:58
a53ca02

Choose a tag to compare

  • Fix support for net core BindingRestrictions

5.2.3.4

29 May 03:15

Choose a tag to compare

Update ODataV3 references to 5.8.4

5.2.3.3

27 Apr 19:57
93f4eb1

Choose a tag to compare

  • fix BindingRestrictions for functions with variable arguments, e.g. Contains(variable)

5.2.3.2

01 Apr 19:58
f3141e3

Choose a tag to compare

This release is functionally identical to v5.2.3.1

5.2.3.1

01 Apr 19:53
236529a

Choose a tag to compare

  • 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)