public static IEnumerable <TResult> ExecuteDbCommand <TResult>(this Database database, DbCommand command, IResultSetMapper <TResult> mapper) { IEnumerable <TResult> list = null; using (IDataReader reader = database.ExecuteReader(command)) { list = mapper.MapSet(reader); return(list); } }
//public static IEnumerable<TResult> ExecuteSprocAccessor<TResult, TParam>(this Database database, // string storedProcedureName, // IParameterMapper parameterMapper, // IRowMapper<TResult> rowMapper, // params TParam[] parameterValues) // where TResult : new() // where TParam : KeyValueItem //{ // return database.CreateSprocAccessor(storedProcedureName, parameterMapper, rowMapper).Execute(parameterValues); //} public static IEnumerable <TResult> ExecuteSprocAccessor <TResult, TParam>(this Database database, string storedProcedureName, IResultSetMapper <TResult> resultSetMapper, params TParam[] parameterValues) where TResult : new() where TParam : KeyValueItem { var reader = database.ExecuteReader <TParam>(storedProcedureName, parameterValues); return(resultSetMapper.MapSet(reader)); //return ExecuteSprocAccessor<TResult, TParam>(database, storedProcedureName, // new KeyValueItemParameterMapper(database), resultSetMapper); }