Beispiel #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 @delegate = DelegateCache.GetDataReaderToDataEntityDelegate <TEntity>(reader, basedOnFields);
         while (reader.Read())
         {
             yield return(@delegate(reader));
         }
     }
 }