using System.Data.Common; using Microsoft.EntityFrameworkCore.Diagnostics; namespace BuildFlow.Workflow.Tests.Performance; /// 仅统计读取 b_form_data 的分页 SELECT 命令。 public sealed class CountingExportPageInterceptor : DbCommandInterceptor { /// 已执行的表单数据分页查询数。 public int PageSelectCount { get; private set; } public override InterceptionResult ReaderExecuting( DbCommand command, CommandEventData eventData, InterceptionResult result) { Count(command); return result; } public override ValueTask> ReaderExecutingAsync( DbCommand command, CommandEventData eventData, InterceptionResult result, CancellationToken cancellationToken = default) { Count(command); return ValueTask.FromResult(result); } private void Count(DbCommand command) { if (command.CommandText.TrimStart().StartsWith("SELECT", StringComparison.OrdinalIgnoreCase) && command.CommandText.Contains("b_form_data", StringComparison.OrdinalIgnoreCase)) { PageSelectCount++; } } }