/// <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)); }
/// <summary> /// 分组指定字段名并返回当前语句 /// </summary> /// <typeparam name="T">实体类类型</typeparam> /// <param name="cmd">查询语句</param> /// <param name="expr">实体类属性</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 DataTable GetAllEntities() /// { /// return this.Select() /// .Querys<User>(c => new { c.UserType }) /// .GroupBy<User>(c => c.UserType) /// .ToDataTable(this); /// /// //SELECT UserType From tbl_Users GROUP BY UserType /// } /// } /// ]]> /// </code> /// </example> public static SelectCommand GroupBy <T>(this SelectCommand cmd, Expression <Func <T, Object> > expr) { DatabaseColumnAttribute attr = SelectCommandExtension.GetColumnAttribute(cmd, expr.Body); return(cmd.GroupBy(attr.ColumnName)); }
/// <summary> /// 查询指定字段名并返回当前语句 /// </summary> /// <typeparam name="T">实体类类型</typeparam> /// <param name="cmd">查询语句</param> /// <param name="expr">实体类属性</param> /// <param name="function">合计函数类型</param> /// <param name="aliasesName">字段名的别名</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 Int32 Count() /// { /// return this.Select() /// .Query<User>(c => c.UserID, SqlAggregateFunction.Count, "UserCount") /// .Result<Int32>(); /// /// //SELECT COUNT(UserID) AS UserCount From tbl_Users /// } /// } /// ]]> /// </code> /// </example> public static SelectCommand Query <T>(this SelectCommand cmd, Expression <Func <T, Object> > expr, SqlAggregateFunction function, String aliasesName) { DatabaseColumnAttribute attr = SelectCommandExtension.GetColumnAttribute(cmd, expr.Body); return(cmd.Query(function, attr.ColumnName, aliasesName)); }