Exemplo n.º 1
0
        /// <summary>
        ///     Delete entity in table "Ts" by a primary key value specified on (T)
        /// </summary>
        /// <param name="connection">Open SqlConnection</param>
        /// <param name="primaryKeyValue">a Single primary key to delete</param>
        /// <param name="transaction">The transaction to run under, null (the default) if none</param>
        /// <param name="commandTimeout">Number of seconds before command execution timeout</param>
        /// <returns>true if deleted, false if not found</returns>
        public static bool Delete <T>(this IDbConnection connection, object primaryKeyValue,
                                      IDbTransaction transaction = null, int?commandTimeout = null) where T : class
        {
            var qh          = new SqlQueryHelper(typeof(T), connection);
            var deleteQuery = qh.GenerateSingleKeyQuery(primaryKeyValue, (ti, sql) => qh.Adapter.DeleteQuery(ti, sql));

            return(connection.Execute(deleteQuery.SqlStatement, deleteQuery.Parameters, transaction, commandTimeout) >
                   0);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Returns a single entity of type 'T'.
        /// </summary>
        /// <typeparam name="T">Type of entity</typeparam>
        /// <param name="connection">Open SqlConnection</param>
        /// <param name="primaryKey">a Single primary key to delete</param>
        /// <param name="transaction">The transaction to run under, null (the default) if none</param>
        /// <param name="commandTimeout">Number of seconds before command execution timeout</param>
        /// <returns>the entity, else null</returns>
        public static async Task <T> GetAsync <T>(this IDbConnection connection, object primaryKey,
                                                  IDbTransaction transaction = null, int?commandTimeout = null) where T : class
        {
            var sqlHelper = new SqlQueryHelper(typeof(T), connection);
            var getQuery  =
                sqlHelper.GenerateSingleKeyQuery(primaryKey, (ti, sql) => sqlHelper.Adapter.GetQuery(ti, sql));

            return((await connection.QueryAsync <T>(getQuery.SqlStatement, getQuery.Parameters, transaction,
                                                    commandTimeout)).SingleOrDefault());
        }
Exemplo n.º 3
0
        /// <summary>
        ///     Check if a record exists
        /// </summary>
        /// <param name="connection">Open SqlConnection</param>
        /// <param name="primaryKey">a Single primary key to check</param>
        /// <param name="transaction">The transaction to run under, null (the default) if none</param>
        /// <param name="commandTimeout">Number of seconds before command execution timeout</param>
        /// <returns>true if record is found</returns>
        public static bool Exists <T>(this IDbConnection connection, object primaryKey,
                                      IDbTransaction transaction = null, int?commandTimeout = null) where T : class
        {
            var sqlHelper   = new SqlQueryHelper(typeof(T), connection);
            var existsQuery =
                sqlHelper.GenerateSingleKeyQuery(primaryKey, (ti, sql) => sqlHelper.Adapter.ExistsQuery(ti, sql));

            return(connection.ExecuteScalar <bool>(existsQuery.SqlStatement, existsQuery.Parameters, transaction,
                                                   commandTimeout));
        }
Exemplo n.º 4
0
        /// <summary>
        ///     Delete entity in table "Ts" by a primary key value specified on (T)
        /// </summary>
        /// <param name="connection">Open SqlConnection</param>
        /// <param name="primaryKeyValue">a Single primary key to delete</param>
        /// <param name="transaction">The transaction to run under, null (the default) if none</param>
        /// <param name="commandTimeout">Number of seconds before command execution timeout</param>
        /// <returns>true if deleted, false if not found</returns>
        public static async Task <bool> DeleteAsync <T>(this IDbConnection connection, object primaryKeyValue,
                                                        IDbTransaction transaction = null, int?commandTimeout = null) where T : class
        {
            var sqlHelper   = new SqlQueryHelper(typeof(T), connection);
            var deleteQuery =
                sqlHelper.GenerateSingleKeyQuery(primaryKeyValue, (ti, sql) => sqlHelper.Adapter.DeleteQuery(ti, sql));

            return(await connection.ExecuteAsync(deleteQuery.SqlStatement, deleteQuery.Parameters, transaction,
                                                 commandTimeout) > 0);
        }