/// <summary>
        /// 按指定列排序并返回当前语句
        /// </summary>
        /// <typeparam name="T">实体类类型</typeparam>
        /// <param name="cmd">查询语句</param>
        /// <param name="expr">实体类属性</param>
        /// <param name="orderType">排序类型</param>
        /// <exception cref="ExpressionInvalidException">表达式不正确</exception>
        /// <exception cref="NullAttributeException">没有设置特性</exception>
        /// <returns>当前语句</returns>
        /// <example>
        /// <code lang="C#">
        /// <![CDATA[
        /// public class UserRepository : DatabaseTable<User>
        /// {
        ///     //other necessary code
        ///
        ///     public List<User> GetAllEntities()
        ///     {
        ///         return this.Select()
        ///             .Querys<User>(c => new { c.UserID, c.UserName })
        ///             .OrderBy<User>(c => c.UserID, SqlOrderType.Desc)
        ///             .ToEntityList<User>(this);
        ///
        ///         //SELECT UserID, UserName From tbl_Users ORDER BY UserID DESC
        ///     }
        /// }
        /// ]]>
        /// </code>
        /// </example>
        public static SelectCommand OrderBy <T>(this SelectCommand cmd, Expression <Func <T, Object> > expr, SqlOrderType orderType)
        {
            DatabaseColumnAttribute attr = SelectCommandExtension.GetColumnAttribute(cmd, expr.Body);
            String tableName             = EntityHelper.InternalGetTableName(typeof(T));

            return(cmd.OrderBy(tableName, attr.ColumnName, orderType));
        }