Skip to content

Releases: pdevito3/QueryKit

v1.11.1

24 Nov 13:35

Choose a tag to compare

Fixes

Sorting

Sorting by nested navigation properties now handles null intermediate objects gracefully, preventing NullReferenceException when using in-memory collections.

Before (v1.11.0)

  // Would throw NullReferenceException if Player is null
  var sorted = stats
      .ApplyQueryKitSort("MatchPlayer.Player.LastName asc")
      .ToList(); // 💥 NullReferenceException

After (v1.12.0)

  // Now works - null navigation properties are handled safely
  var sorted = stats
      .ApplyQueryKitSort("MatchPlayer.Player.LastName asc")
      .ToList(); // ✅ Works! Nulls sort first in ASC, last in DESC

Details

  • Null intermediate navigation properties now sort as null values rather than throwing
  • Database queries (IQueryable) continue to work as before via EF Core's LEFT JOIN handling
  • In-memory collections (IEnumerable) now behave consistently with database queries
  • For custom null coalescing logic, DerivedProperty remains available:
  var config = new QueryKitConfiguration(c =>
  {
      c.DerivedProperty<PlayerStat>(x =>
          x.MatchPlayer.LastName ??
          (x.MatchPlayer.Player != null ? x.MatchPlayer.Player.LastName : "Unknown"))
          .HasQueryName("playerName");
  });

v1.11.0

13 Nov 02:07

Choose a tag to compare

New Feature: Property List Grouping

Property list grouping is a powerful new syntax that allows you to apply a single comparison operation across multiple properties, making it dramatically easier to search for values across multiple fields without writing repetitive conditions.

Instead of writing verbose, repetitive filters like this:

var input = """FirstName @=* "paul" || LastName @=* "paul" || Email @=* "paul" """;

You can now write this:

var input = """(FirstName, LastName, Email) @=* "paul" """;

v1.10.0

12 Nov 00:59

Choose a tag to compare

Full Changelog: v1.9.8...v1.10.0

v1.9.8

29 Oct 01:22

Choose a tag to compare

Full Changelog: v1.9.7...v1.9.8

v1.9.7

28 Sep 20:05

Choose a tag to compare

Full Changelog: v1.9.6...v1.9.7

v1.9.6

28 Sep 19:20

Choose a tag to compare

Full Changelog: v1.9.5...v1.9.6

v1.9.5

28 Sep 18:53

Choose a tag to compare

Full Changelog: v1.9.4...v1.9.5

v1.9.4

05 Sep 03:00

Choose a tag to compare

Full Changelog: v1.9.3...v1.9.4

v1.9.3

05 Sep 02:24

Choose a tag to compare

Full Changelog: v1.9.0...v1.9.3

v1.9.0

01 Jul 14:53

Choose a tag to compare

What's Changed

  • Can use QueryKit on IEnumerables

Full Changelog: v1.8.1...v1.9.0