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

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

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