0

编辑1:尝试显式调用扩展方法时:

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

我有一个更明确的错误消息:

“SqlMapper”类型存在于“Dapper.StrongName, Version=1.50.2.0, Culture=neutral, PublicKeyToken=e3e8412083d25dd3”和“Dapper, Version=1.50.5.0, Culture=neutral, 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, string, object, System.Data.IDbTransaction, int?, System.Data.CommandType?)'

模棱两可的方法是相同的,除非我需要一副新的玻璃。

我在这里想念什么?

4

2 回答 2

0

还可以删除现有的明确包含的对 Dapper 的 nuget 引用,并使用作为 MiniProfiler 存储提供程序的依赖项安装的内容。

于 2021-05-30T07:06:15.897 回答
0

解决方案是使用 Dapper.StrongName nuget 而不是 Dapper。

于 2019-01-17T14:40:51.597 回答