From 618ff8fa0f411016fe2348629fbfae602347c908 Mon Sep 17 00:00:00 2001 From: Willy <63505597+willysoft@users.noreply.github.com> Date: Fri, 18 Apr 2025 23:11:06 +0800 Subject: [PATCH] chore: Add Sieve integration and update QueryPerformance benchmarks - Added Sieve package (v2.5.5) to the benchmark project. - Enhanced QueryPerformance.cs with Sieve-specific benchmarks. - Renamed benchmark methods for better clarity (e.g., AutoQuery_FilterSortSelectPage). - Added Sieve test data and configuration setup in the benchmark. - Updated benchmarks.jpg to reflect the latest benchmark results. --- imgs/benchmarks.jpg | Bin 28378 -> 94827 bytes .../AutoQuery.Benchmark.csproj | 1 + .../Benchmarks/QueryPerformance.cs | 70 +++++++++++++-- src/AutoQuery/Extensions/QueryExtensions.cs | 24 +++++- .../Extensions/QueryExtensionsTests.cs | 81 +++++++++++++++++- 5 files changed, 164 insertions(+), 12 deletions(-) diff --git a/imgs/benchmarks.jpg b/imgs/benchmarks.jpg index 80d16648ebe16ca404118b6c0c9e98b6a3f45baa..28c2dbb752ced45e879847ee65a05bc3efd2b4bf 100644 GIT binary patch literal 94827 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

vBi&|9)!ABA9ta)rw&M%HcmKavq>Ec7{Y3^Z= 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 E0iuXBb^rhX literal 28378 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 + diff --git a/sandbox/AutoQuery.Benchmark/Benchmarks/QueryPerformance.cs b/sandbox/AutoQuery.Benchmark/Benchmarks/QueryPerformance.cs index 68ee312..7162c8d 100644 --- a/sandbox/AutoQuery.Benchmark/Benchmarks/QueryPerformance.cs +++ b/sandbox/AutoQuery.Benchmark/Benchmarks/QueryPerformance.cs @@ -1,6 +1,9 @@ using AutoQuery.Abstractions; using AutoQuery.Extensions; using BenchmarkDotNet.Attributes; +using Microsoft.Extensions.Options; +using Sieve.Models; +using Sieve.Services; using System.Linq.Dynamic.Core; using System.Reflection; @@ -11,7 +14,9 @@ public class QueryPerformance { private List _autoQueryTestData = null!; private List _dynamicLinqTestData = null!; + private List _sieveTestData = null!; private QueryProcessor _queryProcessor = null!; + private SieveProcessor _sieveProcessor = null!; [GlobalSetup] public void Setup() @@ -19,15 +24,27 @@ public void Setup() _queryProcessor = new QueryProcessor(); _queryProcessor.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly()); _autoQueryTestData = Enumerable.Range(1, 10000) - .Select(i => new TestData { Id = i, Name = $"Name{i}", Age = i % 100 }) - .ToList(); + .Select(i => new TestData { Id = i, Name = $"Name{i}", Age = i % 100 }) + .ToList(); _dynamicLinqTestData = Enumerable.Range(1, 10000) - .Select(i => new TestData { Id = i, Name = $"Name{i}", Age = i % 100 }) - .ToList(); + .Select(i => new TestData { Id = i, Name = $"Name{i}", Age = i % 100 }) + .ToList(); + _sieveTestData = Enumerable.Range(1, 10000) + .Select(i => new TestData { Id = i, Name = $"Name{i}", Age = i % 100 }) + .ToList(); + + var sieveOptions = Options.Create(new SieveOptions + { + DefaultPageSize = 10, + MaxPageSize = 100, + CaseSensitive = false + }); + + _sieveProcessor = new SieveProcessor(sieveOptions); } [Benchmark] - public void FilterSortSelectPageWithAutoQuery() + public void AutoQuery_FilterSortSelectPage() { var queryOptions = new TestQueryOptions { @@ -38,11 +55,11 @@ public void FilterSortSelectPageWithAutoQuery() PageSize = 10 }; - _autoQueryTestData.AsQueryable().ApplyQueryPaged(_queryProcessor, queryOptions); + _autoQueryTestData.AsQueryable().ApplyQueryPaged(_queryProcessor, queryOptions).ToList(); } [Benchmark] - public void FilterSortSelectPageWithDynamicLinq() + public void DynamicLinq_FilterSortSelectPage() { _dynamicLinqTestData.AsQueryable() .Where("Name == @0", "Name5000") @@ -53,6 +70,45 @@ public void FilterSortSelectPageWithDynamicLinq() .ToDynamicList(); } + [Benchmark] + public void AutoQuery_FilterSortPage() + { + var queryOptions = new TestQueryOptions + { + Name = "Name5000", + Sort = "Age", + Page = 1, + PageSize = 10 + }; + + _autoQueryTestData.AsQueryable().ApplyQueryPaged(_queryProcessor, queryOptions).ToList(); + } + + [Benchmark] + public void DynamicLinq_FilterSortPage() + { + _dynamicLinqTestData.AsQueryable() + .Where("Name == @0", "Name5000") + .OrderBy("Age") + .Skip(0) + .Take(10) + .ToDynamicList(); + } + + [Benchmark] + public void Sieve_FilterSortPage() + { + var sieveModel = new SieveModel + { + Filters = "Name==Name5000", + Sorts = "Age", + Page = 1, + PageSize = 10, + }; + + _sieveProcessor.Apply(sieveModel, _sieveTestData.AsQueryable()).ToList(); + } + public class UserQueryConfiguration : IFilterQueryConfiguration { public void Configure(FilterQueryBuilder builder) diff --git a/src/AutoQuery/Extensions/QueryExtensions.cs b/src/AutoQuery/Extensions/QueryExtensions.cs index 8fe02c9..28a39fd 100644 --- a/src/AutoQuery/Extensions/QueryExtensions.cs +++ b/src/AutoQuery/Extensions/QueryExtensions.cs @@ -43,7 +43,29 @@ public static IQueryable ApplyQuery(this IQueryable /// The query processor. /// The query options. /// The query object with conditions and pagination options applied. - public static PagedResult ApplyQueryPaged(this IQueryable query, IQueryProcessor queryProcessor, TQueryOptions queryOption) + public static IQueryable ApplyQueryPaged(this IQueryable query, IQueryProcessor queryProcessor, TQueryOptions queryOption) + where TQueryOptions : IQueryPagedOptions + where TData : class + { + var filterExpression = queryProcessor.BuildFilterExpression(queryOption); + var selectorExpression = queryProcessor.BuildSelectorExpression(queryOption); + if (filterExpression != null) + query = query.Where(filterExpression); + if (selectorExpression != null) + query = query.Select(selectorExpression); + return query.ApplySort(queryOption).ApplyPaging(queryOption); + } + + ///

+ /// Applies query conditions and pagination options. + /// + /// The type of the entity being queried. + /// The type of the query options. + /// The query object. + /// The query processor. + /// The query options. + /// The query object with conditions and pagination options applied. + public static PagedResult ApplyQueryPagedResult(this IQueryable query, IQueryProcessor queryProcessor, TQueryOptions queryOption) where TQueryOptions : IQueryPagedOptions where TData : class { diff --git a/test/AutoQuery.Tests/Extensions/QueryExtensionsTests.cs b/test/AutoQuery.Tests/Extensions/QueryExtensionsTests.cs index d92d4fc..15519b1 100644 --- a/test/AutoQuery.Tests/Extensions/QueryExtensionsTests.cs +++ b/test/AutoQuery.Tests/Extensions/QueryExtensionsTests.cs @@ -37,7 +37,7 @@ public void ApplyQuery_ShouldApplyFilterAndSelector(List data, TestQue [Theory] [ClassData(typeof(ApplyQueryPagedTestData))] - public void ApplyQueryPaged_ShouldApplyFilterSelectorAndPaging(List data, TestQueryPagedOptions queryOptions, Expression> filterExpression, Expression> selectorExpression, int expectedCount, int totalCount, int totalPages) + public void ApplyQueryPaged_ShouldApplyFilterSelectorAndPaging(List data, TestQueryPagedOptions queryOptions, Expression> filterExpression, Expression> selectorExpression, int expectedCount, string expectedName) { // Arrange var queryableData = data.AsQueryable(); @@ -50,10 +50,31 @@ public void ApplyQueryPaged_ShouldApplyFilterSelectorAndPaging(List da // Act var result = queryableData.ApplyQueryPaged(_queryProcessorMock.Object, queryOptions); + // Assert + Assert.Equal(expectedCount, result.Count()); + Assert.Equal(expectedName, result.First().Name); + } + + [Theory] + [ClassData(typeof(ApplyQueryPagedResultTestData))] + public void ApplyQueryPagedResult_ShouldApplyFilterSelectorAndPaging(List data, TestQueryPagedOptions queryOptions, Expression> filterExpression, Expression> selectorExpression, int expectedCount, int totalCount, int totalPages, string expectedName) + { + // Arrange + var queryableData = data.AsQueryable(); + + _queryProcessorMock.Setup(x => x.BuildFilterExpression(queryOptions)) + .Returns(filterExpression); + _queryProcessorMock.Setup(x => x.BuildSelectorExpression(queryOptions)) + .Returns(selectorExpression); + + // Act + var result = queryableData.ApplyQueryPagedResult(_queryProcessorMock.Object, queryOptions); + // Assert Assert.Equal(expectedCount, result.Datas.Count()); Assert.Equal(totalCount, result.Count); Assert.Equal(totalPages, result.TotalPages); + Assert.Equal(expectedName, result.Datas.First().Name); } [Theory] @@ -168,8 +189,58 @@ public IEnumerator GetEnumerator() (Expression>)(x => x.Id > 0), (Expression>)(x => new TestData { Id = x.Id, Name = x.Name }), 1, + "Test1" + }; + yield return new object[] + { + new List + { + new TestData { Id = 3, Name = "Test3" }, + new TestData { Id = 4, Name = "Test4" } + }, + new TestQueryPagedOptions { Page = 1, PageSize = 2 }, + (Expression>)(x => x.Id > 2), + (Expression>)(x => new TestData { Id = x.Id, Name = x.Name }), 2, - 2 + "Test3" + }; + yield return new object[] + { + new List + { + new TestData { Id = 5, Name = "Test5" }, + new TestData { Id = 6, Name = "Test6" }, + new TestData { Id = 7, Name = "Test7" } + }, + new TestQueryPagedOptions { Page = 2, PageSize = 2 }, + (Expression>)(x => x.Id > 4), + (Expression>)(x => new TestData { Id = x.Id, Name = x.Name }), + 1, + "Test7" + }; + } + + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + } + + public class ApplyQueryPagedResultTestData : IEnumerable + { + public IEnumerator GetEnumerator() + { + yield return new object[] + { + new List + { + new TestData { Id = 1, Name = "Test1" }, + new TestData { Id = 2, Name = "Test2" } + }, + new TestQueryPagedOptions { Page = 1, PageSize = 1 }, + (Expression>)(x => x.Id > 0), + (Expression>)(x => new TestData { Id = x.Id, Name = x.Name }), + 1, + 2, + 2, + "Test1" }; yield return new object[] { @@ -183,7 +254,8 @@ public IEnumerator GetEnumerator() (Expression>)(x => new TestData { Id = x.Id, Name = x.Name }), 2, 2, - 1 + 1, + "Test3" }; yield return new object[] { @@ -198,7 +270,8 @@ public IEnumerator GetEnumerator() (Expression>)(x => new TestData { Id = x.Id, Name = x.Name }), 1, 3, - 2 + 2, + "Test7" }; }