/// <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)); }