From 109cca043f077d92c8a64ff1198eadc69f3f087c Mon Sep 17 00:00:00 2001 From: Geoff Crossland Date: Thu, 16 Feb 2023 12:49:55 +0000 Subject: [PATCH] Fix Min(Func) handling --- LiteDB.Tests/Mapper/LinqBsonExpression_Tests.cs | 3 +++ LiteDB/Client/Mapper/Linq/TypeResolver/EnumerableResolver.cs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/LiteDB.Tests/Mapper/LinqBsonExpression_Tests.cs b/LiteDB.Tests/Mapper/LinqBsonExpression_Tests.cs index e2563c84b..5cf60266e 100644 --- a/LiteDB.Tests/Mapper/LinqBsonExpression_Tests.cs +++ b/LiteDB.Tests/Mapper/LinqBsonExpression_Tests.cs @@ -180,6 +180,9 @@ public void Linq_Enumerables() // aggregate with map TestExpr(x => x.Phones.Sum(w => w.Number), "SUM(MAP($.Phones => @.Number))"); + TestExpr(x => x.Phones.Average(w => w.Number), "AVG(MAP($.Phones => @.Number))"); + TestExpr(x => x.Phones.Max(w => w.Number), "MAX(MAP($.Phones => @.Number))"); + TestExpr(x => x.Phones.Min(w => w.Number), "MIN(MAP($.Phones => @.Number))"); // map TestExpr(x => x.Phones.Select(y => y.Type), "MAP($.Phones => @.Type)"); diff --git a/LiteDB/Client/Mapper/Linq/TypeResolver/EnumerableResolver.cs b/LiteDB/Client/Mapper/Linq/TypeResolver/EnumerableResolver.cs index bb062500f..c8a34184a 100644 --- a/LiteDB/Client/Mapper/Linq/TypeResolver/EnumerableResolver.cs +++ b/LiteDB/Client/Mapper/Linq/TypeResolver/EnumerableResolver.cs @@ -57,7 +57,7 @@ public virtual string ResolveMethod(MethodInfo method) case "Sum(Func)": return "SUM(MAP(@0 => @1))"; case "Average(Func)": return "AVG(MAP(@0 => @1))"; case "Max(Func)": return "MAX(MAP(@0 => @1))"; - case "Min(Func)": return "MAP(MIN(@0 => @1))"; + case "Min(Func)": return "MIN(MAP(@0 => @1))"; // convert to array case "ToList()":