From faccdb941919eb037429023f126514857e3b14e4 Mon Sep 17 00:00:00 2001 From: NB Date: Mon, 6 Oct 2025 18:56:39 +0200 Subject: [PATCH 1/3] Add .NET 10 target framework to test project --- LiteDB.Tests/LiteDB.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LiteDB.Tests/LiteDB.Tests.csproj b/LiteDB.Tests/LiteDB.Tests.csproj index 79a10353e..ca1563132 100644 --- a/LiteDB.Tests/LiteDB.Tests.csproj +++ b/LiteDB.Tests/LiteDB.Tests.csproj @@ -1,7 +1,7 @@  - net461;net481;net8.0 + net461;net481;net8.0;net10.0 latest LiteDB.Tests LiteDB.Tests From 60d03174cde7beea1eea19cf86745c1aa65ce4fd Mon Sep 17 00:00:00 2001 From: NB Date: Tue, 7 Oct 2025 01:10:29 +0200 Subject: [PATCH 2/3] Added support for Contains 3-parameter overload --- .../TypeResolver/MemoryExtensionsResolver.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/LiteDB/Client/Mapper/Linq/TypeResolver/MemoryExtensionsResolver.cs b/LiteDB/Client/Mapper/Linq/TypeResolver/MemoryExtensionsResolver.cs index b7f2c39c6..f147e2fbb 100644 --- a/LiteDB/Client/Mapper/Linq/TypeResolver/MemoryExtensionsResolver.cs +++ b/LiteDB/Client/Mapper/Linq/TypeResolver/MemoryExtensionsResolver.cs @@ -6,11 +6,21 @@ internal class MemoryExtensionsResolver : ITypeResolver { public string ResolveMethod(MethodInfo method) { - if (method.Name == nameof(System.MemoryExtensions.Contains)) + if (method.Name != nameof(System.MemoryExtensions.Contains)) + return null; + var parameters = method.GetParameters(); + + if (parameters.Length == 2) + { + return "@0 ANY = @1"; + } + + // Support the 3-parameter overload only when comparer defaults to null. + if (parameters.Length == 3) { - var parameters = method.GetParameters(); + var third = parameters[2]; - if (parameters.Length == 2) + if (third.HasDefaultValue && third.DefaultValue == null) { return "@0 ANY = @1"; } From ff5fc0660a89bfe9cb41b02a500b4740ff10883a Mon Sep 17 00:00:00 2001 From: JKamsker <11245306+JKamsker@users.noreply.github.com> Date: Tue, 7 Oct 2025 02:14:55 +0200 Subject: [PATCH 3/3] Fix CI --- .github/workflows/_reusable-ci.yml | 8 +++++--- LiteDB.Tests/LiteDB.Tests.csproj | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/_reusable-ci.yml b/.github/workflows/_reusable-ci.yml index 14591d8af..4761c3696 100644 --- a/.github/workflows/_reusable-ci.yml +++ b/.github/workflows/_reusable-ci.yml @@ -8,9 +8,9 @@ on: type: string default: | [ - { "display": ".NET 8", "sdk": "8.0.x", "framework": "net8.0", "includePrerelease": false }, - { "display": ".NET 9", "sdk": "9.0.x\n8.0.x", "framework": "net8.0", "includePrerelease": true }, - { "display": ".NET 10", "sdk": "10.0.x\n8.0.x", "framework": "net8.0", "includePrerelease": true } + { "display": ".NET 8", "sdk": "8.0.x", "framework": "net8.0", "includePrerelease": false, "msbuildProps": "" }, + { "display": ".NET 9", "sdk": "9.0.x\n8.0.x", "framework": "net8.0", "includePrerelease": true, "msbuildProps": "" }, + { "display": ".NET 10", "sdk": "10.0.x\n8.0.x", "framework": "net10.0", "includePrerelease": true, "msbuildProps": "-p:LiteDBTestsEnableNet10=true" } ] jobs: @@ -79,6 +79,7 @@ jobs: --configuration Release --framework ${{ matrix.item.framework }} --no-dependencies + ${{ matrix.item.msbuildProps }} - name: Run tests timeout-minutes: 5 @@ -91,6 +92,7 @@ jobs: --settings tests.runsettings --logger "trx;LogFileName=TestResults.trx" --logger "console;verbosity=detailed" + ${{ matrix.item.msbuildProps }} repro-runner: runs-on: ubuntu-latest diff --git a/LiteDB.Tests/LiteDB.Tests.csproj b/LiteDB.Tests/LiteDB.Tests.csproj index ca1563132..bc979ab36 100644 --- a/LiteDB.Tests/LiteDB.Tests.csproj +++ b/LiteDB.Tests/LiteDB.Tests.csproj @@ -1,7 +1,9 @@  - net461;net481;net8.0;net10.0 + false + net461;net481;net8.0 + $(TargetFrameworks);net10.0 latest LiteDB.Tests LiteDB.Tests @@ -64,4 +66,4 @@ - \ No newline at end of file +