public async Task PostprocessAsync(DbDataReader reader, IList<Exception> exceptions, CancellationToken token) { await reader.ReadAsync(token).ConfigureAwait(false); var values = await reader.GetFieldValueAsync<int[]>(0, token).ConfigureAwait(false); applyDataFromSproc(values); }
/// <summary> /// 获取指定名字的列 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="reader"></param> /// <param name="key"></param> /// <returns></returns> public static async Task <T> GetAsync <T>(this System.Data.Common.DbDataReader reader, string key) { var ordinal = reader.GetOrdinal(key); return(await reader.GetFieldValueAsync <T>(ordinal)); }
private async Task<long> getLong(DbDataReader reader) { await reader.NextResultAsync(_token).ConfigureAwait(false); bool isAny = await reader.ReadAsync(_token).ConfigureAwait(false); if (!isAny) return 0; if (await reader.IsDBNullAsync(0, _token).ConfigureAwait(false)) { return 0; } return await reader.GetFieldValueAsync<long>(0, _token).ConfigureAwait(false); }