0

我试图让 MySql 上的 miniprofiler 和 Dapper 一起工作来分析 sql 语句。

我已经设法让 miniprofiler 和 swagger 一起工作,但是由于某种原因,dapper 生成和执行的 sql 没有被拦截,我相信这是因为 Miniprofiler.Current 由于某种原因总是返回 null。

我想知道是否有其他人可以提供帮助。

附上示例项目。运行 docker compose 并手动运行 api。 在此处输入图像描述

在此处输入图像描述

测试 api 下载 => https://gofile.io/?c=Qf6boJ

4

1 回答 1

0

第一个问题是app.UseMiniprofiler()需要先于app.UseMvc

第二个问题是数据库连接工厂必须如下所示:

 public IDbConnection Create()
        {
            return new StackExchange.Profiling.Data.ProfiledDbConnection(
                new MySqlConnection(_storageSettings.ConnectionString),
                MiniProfiler.Current
            );
        }

我使用的包如下:

<PackageReference Include="Dapper" Version="2.0.30" />
<PackageReference Include="MySqlConnector" Version="0.61.0" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.1.0" />
于 2019-11-25T13:42:53.010 回答