EDIT 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) の依存関係です。
Dapper と一緒に MiniProfiler を使用して、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?)'
新しいガラスが必要でない限り、あいまいな方法は同じです。
ここで何が欠けていますか?