コード例 #1
0
        protected async Task <object> ExecuteScalarWithTimeout(string proc, ParameterDictionary parameters, int?timeout)
        {
            //_logger.LogInformation($"DataAccess.ExecuteScalarWithTimeout|Stored Proc: {proc}, Parameters: {parameters?.GetDynamicObject() ?? "N/A"}, Timeout: {timeout ?? 0}");
            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                return(await conn.ExecuteScalarAsync(proc, parameters?.GetDynamicObject(), commandTimeout : timeout, commandType : _sProcType)
                       .ConfigureAwait(continueOnCapturedContext: false));
            }
        }
コード例 #2
0
        private async Task <IEnumerable <T> > Execute(string proc, IDataMapper <T> mapper, ParameterDictionary parameters)
        {
            //_logger.LogInformation($"DataAccess.Execute|Stored Proc: {proc}, Return type: {typeof(T).ToString()}, Data Mapper: {mapper?.GetType()?.ToString() ?? "N/A"}, Parameters: {parameters?.GetDynamicObject() ?? "N/A"}");
            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                if (mapper != null)
                {
                    SqlMapper.GridReader reader = await conn.QueryMultipleAsync(proc, parameters?.GetDynamicObject() ?? null, commandType : _sProcType)
                                                  .ConfigureAwait(continueOnCapturedContext: false);

                    return(await mapper.MapDataAsync(reader)
                           .ConfigureAwait(continueOnCapturedContext: false));
                }
                else if (parameters != null)
                {
                    return(await conn.QueryAsync <T>(proc, parameters.GetDynamicObject(), commandType : _sProcType)
                           .ConfigureAwait(continueOnCapturedContext: false));
                }
                else
                {
                    return(await conn.QueryAsync <T>(proc, commandType : _sProcType)
                           .ConfigureAwait(continueOnCapturedContext: false));
                }
            }
        }
コード例 #3
0
 protected async Task <object> ExecuteScalar(string proc, ParameterDictionary parameters)
 {
     return(await ExecuteScalarWithTimeout(proc, parameters, null)
            .ConfigureAwait(continueOnCapturedContext: false));
 }
コード例 #4
0
 protected async Task <IEnumerable <T> > ExecuteStoredProc(string proc, ParameterDictionary parameters)
 {
     return(await Execute(proc, null, parameters)
            .ConfigureAwait(continueOnCapturedContext: false));
 }