/// <summary>Gets the value of the specified column as an instance of type T.</summary>
 /// <typeparam name="T">The type of element to return.</typeparam>
 /// <param name="reader">The reader.</param>
 /// <param name="columnName">Name of the column.</param>
 /// <returns>This method returns default values for null database column values or undefined columns.</returns>
 public static T GetSafeValue <T>(this DbDataReader reader, string columnName)
 {
     for (int i = 0; i < reader.FieldCount; i++)
     {
         if (reader.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase))
         {
             return(reader.GetSafeValue <T>(i));
         }
     }
     return(default(T));
 }