/// <summary>
        /// The table name.
        /// </summary>
        /// <param name="dto">
        /// The dto.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public static Tuple <string, int> TableNameColumnCount(this IDto dto)
        {
            var tableName   = ((TableNameAttribute)dto.GetType().GetCustomAttribute(typeof(TableNameAttribute), false)).Value;
            var columnCount = dto.GetColumnProperties().Count();

            return(new Tuple <string, int>(tableName, columnCount));
        }
        /// <summary>
        /// The column values.
        /// </summary>
        /// <param name="dto">
        /// The dto.
        /// </param>
        /// <returns>
        /// The collection of column tuples
        /// </returns>
        internal static IEnumerable <Tuple <string, object> > ColumnValues(this IDto dto)
        {
            var properties = dto.GetColumnProperties();

            return(properties.Select(p =>
                                     new Tuple <string, object>(
                                         p.GetCustomAttribute <ColumnAttribute>().Name,
                                         p.GetValue(dto, null))));
        }