Asp.net core 2.2 api не может интегрировать miniprofiler, dapper и mySql для работы

Я пытаюсь заставить miniprofiler и Dapper на MySql работать вместе для профилирования операторов sql.

Мне удалось заставить miniprofiler и swagger работать вместе, но sql, сгенерированный и выполненный dapper, по какой-то причине не перехватывается, я считаю, что это потому, что Miniprofiler.Current по какой-то причине всегда возвращает null.

Мне было интересно, может ли кто-нибудь еще помочь.

образец проекта прилагается. запустите docker compose и запустите api вручную. введите здесь описание изображения

введите здесь описание изображения

тестовый api download => https://gofile.io/?c=Qf6boJ


person Farhad-Taran    schedule 23.11.2019    source источник


Ответы (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" />
person Farhad-Taran    schedule 25.11.2019