【问题标题】:Asp.net core 2.2 api not able to integrate miniprofiler, dapper and mySql to workAsp.net core 2.2 api 无法集成 miniprofiler、dapper 和 mySql 工作
【发布时间】:2019-11-23 16:44:39
【问题描述】:
我正在尝试让 MySql 上的 miniprofiler 和 Dapper 一起工作以分析 sql 语句。
我已经设法让 miniprofiler 和 swagger 一起工作,但是由于某种原因,dapper 生成和执行的 sql 没有被拦截,我相信这是因为 Miniprofiler.Current 总是由于某种原因返回 null。
我想知道是否有其他人可以提供帮助。
附上示例项目。
运行 docker compose 并手动运行 api。
测试 api 下载 => https://gofile.io/?c=Qf6boJ
【问题讨论】:
标签:
asp.net-core
miniprofiler
【解决方案1】:
第一个问题是 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" />