Releases: pdevito3/QueryKit
Releases · pdevito3/QueryKit
v1.11.1
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(); // 💥 NullReferenceExceptionAfter (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 DESCDetails
- 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
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
Full Changelog: v1.9.8...v1.10.0
v1.9.8
Full Changelog: v1.9.7...v1.9.8
v1.9.7
Full Changelog: v1.9.6...v1.9.7
v1.9.6
Full Changelog: v1.9.5...v1.9.6
v1.9.5
Full Changelog: v1.9.4...v1.9.5
v1.9.4
Full Changelog: v1.9.3...v1.9.4
v1.9.3
Full Changelog: v1.9.0...v1.9.3