Почему с Dapper QueryAsync возникает неопределенность при использовании с MiniProfiler? - PullRequest
0 голосов
/ 17 января 2019

РЕДАКТИРОВАТЬ 1 : При попытке вызвать метод расширения явно:

Dapper.SqlMapper.QueryAsync<dynamic>(cnx, "SELECT TOP 10 * FROM dbo.Company;");

У меня гораздо более явное сообщение об ошибке:

Тип «SqlMapper» существует в обоих «Dapper.StrongName, версия = 1.50.2.0, Culture = нейтральный, PublicKeyToken = e3e8412083d25dd3» и «Dapper, версия = 1.50.5.0, Culture = нейтральный, PublicKeyToken = null»

Могу ли я что-нибудь с этим сделать?

Dapper.StrongName является зависимостью от MiniProfiler (стандарт .Net 1.5)


Я пытаюсь использовать MiniProfiler вместе с Dapper, чтобы увидеть команды SQL, отправляемые на сервер.

У меня есть следующий код для создания инструментированного соединения по требованию:

   private static DbConnection GetCnx(bool instrumented = false)
    {
        var cnx = new SqlConnection("Data Source=foo;Initial Catalog=bar;Integrated Security=SSPI;");
        // Enabling statistics for logging purposes
        if (instrumented)
            return new ProfiledDbConnection(cnx, MiniProfiler.Current);
        else
            return cnx;
    }

Следующий код потребления больше не будет компилироваться:

using (DbConnection cnx = GetCnx())
{
      await cnx.OpenAsync();
      return await cnx.QueryAsync<dynamic>("SELECT TOP 10 * FROM dbo.Company;");
}

Вызов неоднозначен между следующими методами или свойствами: 'Dapper.SqlMapper.QueryAsync (System.Data.IDbConnection, строка, объект, System.Data.IDbTransaction, int ?, System.Data.CommandType?)' И ' Dapper.SqlMapper.QueryAsync (System.Data.IDbConnection, строка, объект, System.Data.IDbTransaction, int ?, System.Data.CommandType?) '

Неоднозначные методы идентичны, если только мне не нужна новая пара стекол.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 17 января 2019

Решение состоит в том, чтобы использовать Daget.StrongName вместо Dapper.

...