Exemplo n.º 1
0
 /// <summary>
 /// Converts the <see cref="DbDataReader"/> into an enumerable of <see cref="ExpandoObject"/> object.
 /// </summary>
 /// <param name="reader">The <see cref="DbDataReader"/> to be converted.</param>
 /// <param name="tableName">The name of the target table.</param>
 /// <param name="connection">The used <see cref="IDbConnection"/> object.</param>
 /// <returns>An array of <see cref="ExpandoObject"/> objects.</returns>
 internal static IEnumerable <dynamic> ToEnumerable(DbDataReader reader,
                                                    string tableName,
                                                    IDbConnection connection)
 {
     if (reader != null && reader.HasRows)
     {
         var func = FunctionCache.GetDataReaderToExpandoObjectConverterFunction(reader,
                                                                                tableName,
                                                                                connection);
         while (reader.Read())
         {
             yield return(func(reader));
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Converts the <see cref="DbDataReader"/> into an enumerable of <see cref="ExpandoObject"/> object in an asynchronous way.
        /// </summary>
        /// <param name="reader">The <see cref="DbDataReader"/> to be converted.</param>
        /// <param name="tableName">The name of the target table.</param>
        /// <param name="connection">The used <see cref="IDbConnection"/> object.</param>
        /// <returns>An array of <see cref="ExpandoObject"/> objects.</returns>
        internal static async Task <IEnumerable <dynamic> > ToEnumerableAsync(DbDataReader reader,
                                                                              string tableName,
                                                                              IDbConnection connection)
        {
            var list = new List <dynamic>();

            if (reader != null && reader.HasRows)
            {
                var func = FunctionCache.GetDataReaderToExpandoObjectConverterFunction(reader,
                                                                                       tableName,
                                                                                       connection);
                while (await reader.ReadAsync())
                {
                    list.Add(func(reader));
                }
            }
            return(list);
        }