Dapperでdbを呼び出すたびに繰り返すコードの多くを隠すために、ラッパーを作成しようとしています。(つまり、SQL接続、try、デフォルトのキャッチ、そして最後に)基本的に次のコードのようなことをしたいのですが、動的パラメーターがあるため、ジェネリックスintをこのように使用できないことを理解しています。
それが私がエラーを得る方法:
動的引数をキャストするか、拡張メソッド構文なしで拡張メソッドを呼び出すことを検討してください(conn.Queryメソッドを参照)
私ExecuteQuery
またはそれが機能するようなものにリファクタリングする方法はありますか?
public abtract class IDbAccessService
{
public LogService Logger { get; set; }
public virtual IEnumerable<T> ExecuteQuery<T>(string sql, dynamic param, string connString)
where T : BaseModel
{
using (var conn = DataAccessHelpers.GetOpenConnection(connString))
{
try
{
return conn.Query<T>(sql, param).ToList<T>();
}
catch (Exception ex)
{
Logger.Logger.Error(ex.Message, ex);
throw ex;
}
}
}
}