Skip to content

ExRam.Gremlinq 14.0.0

Changes

ExRam.Gremlinq 14 contains a few breaking changes. Most of them have already been communicated by ObsoleteAttribute-markers in recent releases in the 13.x-line.

  • CosmosDb provider packages have moved to Gremlinq.Extensions

  • Optimize Step-serialization (#2392)

  • Previous Behavior: Steps were tried to serialize multiple times for various target types (Instruction, Step[], etc.), leading to unnecessary (failed) lookups. Furthermore, since the order of these target types was fixed, it was impossible to override Step serialization when the target types did not fit (or supersede each other in a specific way).
  • New Behavior: Step is now serialized to the object target type. The resulting instance is then handled based on its actual type.
  • Possibly breaking change for Custom IConverterFactory Implementations: Custom IConverterFactory implementations that previously reacted to specific target types must now recognize requests for the object target type and determine if they can satisfy the conversion. This change ensures compatibility with the new serialization approach while maintaining flexibility for custom converters.

  • Rename edge-creation query surface from IInOrOutEdgeGremlinQuery to IAddEdgeGremlinQuery (#2357) The previous naming was confusing, seemingly indicating a base interface type for an edge that is not known to be an in or out edge, when actually, the sole purpose of that interface was to be returned by the AddE-operator to enable fluent calls to To or From.

  • Remove StringComparisonTranslationStrictness (#2372) Gremlinq will always behave as if StringComparisonTranslationStrictness.Strict was configured. Queries using a string comparison which is not supported on a specific database provider (e.g. case insensitive queries on Azure CosmosDb) must be modified accordingly. StringComparisonTranslationStrictness was already marked obsolete in later 13.x versions.

  • Rename extension classes (#2358) Classes named ConfigurableGremlinQuerySourceExtensions are renamed to GremlinQuerySourceExtensions.

  • Drop .NET 6, 7 (#2360, #2361) These target frameworks are no longer supported by Microsoft.

  • Add support for ElementMap operator (#2385, #2386, #2393)

  • Add Key deserialization support (#2384)

  • Implement IEquatable on Key because it's there already. (#2387)