Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 15, 2025

Updated QueryKit from 1.5.0 to 1.12.0.

Release notes

Sourced from QueryKit's releases.

1.12.0

Features

Property Depth Limiting

Added the ability to control the maximum depth of nested property access in filters and sorts. This helps protect against deeply nested queries when exposing QueryKit to external consumers.

Usage

// Limit nesting to 2 levels globally
var config = new QueryKitConfiguration(settings =>
{
    settings.MaxPropertyDepth = 2;
});

// "Author.Name" works (depth 1)
// "Author.Address.City" works (depth 2)
// "Author.Address.Country.Name" throws QueryKitPropertyDepthExceededException (depth 3)

Override the global limit for specific properties:

var config = new QueryKitConfiguration(settings =>
{
    settings.MaxPropertyDepth = 1;
    settings.Property<Book>(x => x.Author).HasMaxDepth(2); // Allow deeper nesting for Author
});

1.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(); // 💥 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");
  });

1.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" """;

1.10.0

Full Changelog: pdevito3/QueryKit@v1.9.8...v1.10.0

1.9.8

Full Changelog: pdevito3/QueryKit@v1.9.7...v1.9.8

1.9.7

Full Changelog: pdevito3/QueryKit@v1.9.6...v1.9.7

1.9.6

Full Changelog: pdevito3/QueryKit@v1.9.5...v1.9.6

1.9.5

Full Changelog: pdevito3/QueryKit@v1.9.4...v1.9.5

1.9.4

Full Changelog: pdevito3/QueryKit@v1.9.3...v1.9.4

1.9.3

Full Changelog: pdevito3/QueryKit@v1.9.0...v1.9.3

1.9.0

What's Changed

  • Can use QueryKit on IEnumerables

Full Changelog: pdevito3/QueryKit@v1.8.1...v1.9.0

1.8.1

What's Changed

  • fixes hasconversion

Full Changelog: pdevito3/QueryKit@1.8.0...v1.8.1

1.8.0

Updates

  • supports HasConversion()

Full Changelog: pdevito3/QueryKit@1.7.0...1.8.0

1.7.0

Changes

  • can compare properties #​59
  • can do arithmetic #​61
  • can perform custom operations #​50

Full Changelog: pdevito3/QueryKit@v1.6.0...1.7.0

1.6.0

What's Changed

New Contributors

Full Changelog: pdevito3/QueryKit@v1.5.0...v1.6.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: QueryKit
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Dec 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant