예제 #1
0
        /// <summary>
        /// <paramref name="query"/>를 비동기 방식으로 실행하여, 결과 셋을 <see cref="Task{DataTable}"/>로 반환합니다.
        /// </summary>
        public static Task <OracleDataTable> ExecuteDataTableAsync(this EnterpriseLibrary.OracleDatabase oraDatabase,
                                                                   string query,
                                                                   int firstResult,
                                                                   int maxResult,
                                                                   params IAdoParameter[] parameters)
        {
            query.ShouldNotBeWhiteSpace("query");

            var cmd = oraDatabase.GetOracleCommand(query);

            return
                (ExecuteDataTableAsync(oraDatabase, cmd, firstResult, maxResult, parameters)
                 .ContinueWith(task => {
                With.TryAction(() => cmd.Dispose());
                return task;
            },
                               TaskContinuationOptions.ExecuteSynchronously)
                 .Unwrap());
        }