Skip to content

v3.0.0

Choose a tag to compare

@CaffeinatedCoder CaffeinatedCoder released this 11 Jun 18:34
· 12 commits to main since this release

New Features

Finally: the companion package CodoMetis.ValueRanges.EFCore.PostgreSQL is here! It enables seamless mapping of range types to PostgreSQL range and multirange columns (leveraging NpgsqlRange<T> under the hood). Implemented LINQ-to-SQL query translation for range operations, including Contains, Overlaps, Intersect, Except and Union. Added support for RangeSet translation and query expression rewriting to properly translate from C# operators (&, |, -) to their Postgres-equivalents.

Breaking Changes

State-check methods now require parentheses
IsEmpty, IsFinite, IsInfinity, IsUnboundedStart, and IsUnboundedEnd were extension properties in v2.x. In v3.0.0 they are extension methods — add parentheses at every call site:

// v2.x
if (range.IsEmpty) {}

// v3.0.0
if (range.IsEmpty()) {}

The change is mechanical and the compiler will flag every affected site. The motivation is EF Core compatibility: extension properties cannot appear in LINQ expression trees, preventing SQL translation. As extension methods they are fully translated by the EF Core companion package.

Full Changelog: v2.0.0...v3.0.0