Exemplo n.º 1
0
        /// <summary>
        /// 비동기 방식으로 쿼리문을 실행해서, DataTable을 반환하는 Task를 빌드합니다.
        /// </summary>
        /// <param name="repository"><see cref="IAdoRepository"/></param>
        /// <param name="sqlString">실행할 쿼리문</param>
        /// <param name="firstResult">첫번째 레코드 인덱스</param>
        /// <param name="maxResults">최대 레코드 갯수</param>
        /// <param name="parameters">파라미터 컬렉션</param>
        /// <returns>DataTable을 반환하는 Task</returns>
        public static Task <DataTable> ExecuteDataTableByQueryStringAsync(this IAdoRepository repository,
                                                                          string sqlString,
                                                                          int?firstResult,
                                                                          int?maxResults,
                                                                          params IAdoParameter[] parameters)
        {
            repository.ShouldNotBeNull("repository");
            sqlString.ShouldNotBeWhiteSpace("sqlString");

            if (IsDebugEnabled)
            {
                log.Debug("비동기 방식으로 쿼리를 수행하여 DataTable을 빌드합니다... sqlString=[{0}], firstResult=[{1}], maxResults=[{2}]",
                          sqlString, firstResult, maxResults);
            }

            return(Task.Factory.StartNew(() => repository.ExecuteDataTableBySqlString(sqlString,
                                                                                      firstResult ?? 0,
                                                                                      maxResults ?? 0,
                                                                                      parameters)));
        }