コード例 #1
0
 /// <summary>
 /// Converts the <see cref="DbDataReader"/> into an enumerable of data entity object.
 /// </summary>
 /// <typeparam name="TEntity">The data entity type to convert.</typeparam>
 /// <param name="reader">The <see cref="DbDataReader"/> to be converted.</param>
 /// <param name="basedOnFields">Check whether to create a delegate based on the data reader fields.</param>
 /// <returns>An array of data entity objects.</returns>
 internal static IEnumerable <TEntity> ToEnumerable <TEntity>(DbDataReader reader, bool basedOnFields = false)
     where TEntity : class
 {
     if (reader != null && reader.IsClosed == false && reader.HasRows)
     {
         var func = FunctionCache.GetDataReaderToDataEntityFunction <TEntity>(reader, basedOnFields);
         while (reader.Read())
         {
             yield return(func(reader));
         }
     }
 }
コード例 #2
0
 /// <summary>
 /// Converts the <see cref="DbDataReader"/> into an enumerable of data entity object.
 /// </summary>
 /// <typeparam name="TEntity">The data entity type to convert.</typeparam>
 /// <param name="reader">The <see cref="DbDataReader"/> to be converted.</param>
 /// <param name="connection">The used <see cref="IDbConnection"/> object.</param>
 /// <param name="transaction">The transaction object that is currently in used.</param>
 /// <returns>An array of data entity objects.</returns>
 public static IEnumerable <TEntity> ToEnumerable <TEntity>(DbDataReader reader,
                                                            IDbConnection connection   = null,
                                                            IDbTransaction transaction = null)
     where TEntity : class
 {
     if (reader != null && reader.IsClosed == false && reader.HasRows)
     {
         var func = FunctionCache.GetDataReaderToDataEntityFunction <TEntity>(reader,
                                                                              connection,
                                                                              transaction);
         while (reader.Read())
         {
             yield return(func(reader));
         }
     }
 }
コード例 #3
0
ファイル: DataReader.cs プロジェクト: crazyants/RepoDb
        /// <summary>
        /// Converts the <see cref="DbDataReader"/> into an enumerable of data entity object in an asynchronous way.
        /// </summary>
        /// <typeparam name="TEntity">The data entity type to convert.</typeparam>
        /// <param name="reader">The <see cref="DbDataReader"/> to be converted.</param>
        /// <param name="connection">The used <see cref="IDbConnection"/> object.</param>
        /// <param name="basedOnFields">Check whether to create a delegate based on the data reader fields.</param>
        /// <returns>An array of data entity objects.</returns>
        internal static async Task <IEnumerable <TEntity> > ToEnumerableAsync <TEntity>(DbDataReader reader,
                                                                                        IDbConnection connection,
                                                                                        bool basedOnFields)
            where TEntity : class
        {
            var list = new List <TEntity>();

            if (reader != null && reader.IsClosed == false && reader.HasRows)
            {
                var func = FunctionCache.GetDataReaderToDataEntityFunction <TEntity>(reader,
                                                                                     connection,
                                                                                     basedOnFields);
                while (await reader.ReadAsync())
                {
                    list.Add(func(reader));
                }
            }
            return(list);
        }
コード例 #4
0
        /// <summary>
        /// Converts the <see cref="DbDataReader"/> into an enumerable of data entity object in an asynchronous way.
        /// </summary>
        /// <typeparam name="TEntity">The data entity type to convert.</typeparam>
        /// <param name="reader">The <see cref="DbDataReader"/> to be converted.</param>
        /// <param name="connection">The used <see cref="IDbConnection"/> object.</param>
        /// <param name="connectionString">The raw connection string.</param>
        /// <param name="transaction">The transaction object that is currently in used.</param>
        /// <param name="enableValidation">Enables the validation after retrieving the database fields.</param>
        /// <returns>An array of data entity objects.</returns>
        internal static async Task <IEnumerable <TEntity> > ToEnumerableInternalAsync <TEntity>(DbDataReader reader,
                                                                                                IDbConnection connection   = null,
                                                                                                string connectionString    = null,
                                                                                                IDbTransaction transaction = null,
                                                                                                bool enableValidation      = true)
            where TEntity : class
        {
            var list = new List <TEntity>();

            if (reader != null && reader.IsClosed == false && reader.HasRows)
            {
                var func = FunctionCache.GetDataReaderToDataEntityFunction <TEntity>(reader,
                                                                                     connection,
                                                                                     connectionString,
                                                                                     transaction,
                                                                                     enableValidation);
                while (await reader.ReadAsync())
                {
                    list.Add(func(reader));
                }
            }
            return(list);
        }