Почему при использовании Dapper QueryAsync с MiniProfiler возникает неоднозначность?

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

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

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

Тип «SqlMapper» существует как в «Dapper.StrongName, версия = 1.50.2.0, культура = нейтральная, PublicKeyToken = e3e8412083d25dd3», так и в «Dapper, версия = 1.50.5.0, культура = нейтральная, 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, string, object, System.Data.IDbTransaction, int?, System.Data.CommandType?)» и «Dapper.SqlMapper .QueryAsync(System.Data.IDbConnection, строка, объект, System.Data.IDbTransaction, int?, System.Data.CommandType?)'

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

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


person Olivier MATROT    schedule 17.01.2019    source источник


Ответы (2)


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

person Olivier MATROT    schedule 17.01.2019

Можно также удалить существующую явно включенную ссылку nuget на Dapper и использовать то, что устанавливается как зависимость от поставщиков хранилища MiniProfiler.

person ozerfrettelter    schedule 30.05.2021