//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> An IDbConnection extension method that lasts. </summary> /// /// <remarks> Msacli, 22.04.2019. </remarks> /// /// <typeparam name="T"> Generic type parameter. </typeparam> /// <param name="connection"> The connection to act on. </param> /// <param name="sqlText"> The SQL text. </param> /// <param name="commandType"> (Optional) Type of the command. </param> /// <param name="transaction"> (Optional) The transaction. </param> /// <param name="parameters"> A variable-length parameters list containing parameters. </param> /// /// <returns> A T. </returns> //////////////////////////////////////////////////////////////////////////////////////////////////// public static T Last <T>(this IDbConnection connection, string sqlText, CommandType commandType = CommandType.Text, IDbTransaction transaction = null, params object[] parameters) where T : class { T instance = null; try { ExpandoObject expando = LastAsDynamic( connection, sqlText, commandType, transaction, parameters); instance = DynamicExtensions.ConvertTo <T>(expando); } catch (Exception e) { throw; } return(instance); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> An IDbConnection extension method that firsts. </summary> /// /// <remarks> Msacli, 22.04.2019. </remarks> /// /// <typeparam name="T"> Generic type parameter. </typeparam> /// <param name="connection"> The connection to act on. </param> /// <param name="sqlText"> The SQL text. </param> /// <param name="commandType"> (Optional) Type of the command. </param> /// <param name="transaction"> (Optional) The transaction. </param> /// <param name="inputParameters"> (Optional) Options for controlling the input. </param> /// <param name="outputParameters"> (Optional) Options for controlling the output. </param> /// /// <returns> A T. </returns> //////////////////////////////////////////////////////////////////////////////////////////////////// public static T First <T>(this IDbConnection connection, string sqlText, CommandType commandType = CommandType.Text, IDbTransaction transaction = null, Dictionary <string, object> inputParameters = null, Dictionary <string, object> outputParameters = null) where T : class { T instance = null; try { ExpandoObject expando = FirstAsDynamic( connection, sqlText, commandType, transaction, inputParameters, outputParameters); instance = DynamicExtensions.ConvertTo <T>(expando); } catch (Exception e) { throw; } return(instance); }