/// <summary> /// 获取实体列表(支持分页) /// </summary> /// <param name="param">查询参数对象(支持分页)</param> /// <returns>返回List实体列表</returns> public List <T> GetList(ParamQuery param = null) { var result = new List <T>(); result = BuilderParse(param).QueryMany(); return(result); }
/// <summary> /// 获取实体对象 /// </summary> /// <param name="param">查询参数对象</param> /// <returns>返回实体对象T</returns> public T GetEntity(ParamQuery param) { var result = new T(); result = BuilderParse(param).QuerySingle(); return(result); }
/// <summary> /// 获取实体对象 /// </summary> /// <param name="value">主键值</param> /// <returns>返回实体对象T</returns> public T GetEntity(object value) { var columnAttribute = AttributeHelper.GetCustomAttribute <TableAttribute>(typeof(T)); var p = ParamQuery.Instance().From(columnAttribute.TableName).ClearWhere().AndWhere(columnAttribute.PrimaryField, value); return(this.GetEntity(p)); }
/// <summary> /// 获取动态列表 /// </summary> /// <param name="param">查询参数对象</param> /// <returns>返回List<dynamic>动态列表</returns> public List <dynamic> GetDynamicList(ParamQuery param = null) { var result = new List <dynamic>();// db.Sql("").QueryMany<dynamic>(); string sql = BuilderParse(param).Data.Command.Data.Context.Data.FluentDataProvider.GetSqlForSelectBuilder(BuilderParse(param).Data); result = BuilderParse(param).Data.Command.Sql(sql).QueryMany <dynamic>(); return(result); }
/// <summary> /// 获取单个动态对象 /// </summary> /// <param name="param">查询参数对象</param> /// <returns>返回单个动态对象dynamic</returns> public dynamic GetDynamic(ParamQuery param) { var result = new ExpandoObject(); string sql = BuilderParse(param).Data.Command.Data.Context.Data.FluentDataProvider.GetSqlForSelectBuilder(BuilderParse(param).Data); result = BuilderParse(param).Data.Command.Sql(sql).QuerySingle <dynamic>(); return(result); }
///// <summary> ///// 分页获取动态实体列表(dynamic属性:rows、total) ///// </summary> ///// <param name="param">查询参数对象</param> ///// <returns></returns> //public dynamic GetPageList(ParamQuery param = null) //{ // dynamic result = new ExpandoObject(); // result.rows = this.GetList(param); // result.total = this.QueryRowCount(param, result.rows); // return result; //} /// <summary> /// 分页获取动态列表(dynamic属性:rows、total) /// </summary> /// <param name="param">ParamQuery查询参数对象</param> /// <returns>dynamic</returns> public dynamic GetDynamicPageList(ParamQuery param = null) { dynamic result = new ExpandoObject(); result.rows = this.GetDynamicList(param); result.total = this.QueryRowCount(param, result.rows); return(result); }
/// <summary> /// 查询记录数(分页查询使用) /// </summary> /// <param name="param">ParamQuery</param> /// <param name="rows">dynamic rows</param> /// <returns>int</returns> protected int QueryRowCount(ParamQuery param, dynamic rows) { if (rows != null) { if (null == param || param.GetData().PageSize == 0) { return(rows.Count); } } var RowCountParam = param.Paging(1, 0).OrderBy(string.Empty); var sql = BuilderParse(RowCountParam).Data.Command.Data.Context.Data.FluentDataProvider.GetSqlForSelectBuilder(BuilderParse(RowCountParam).Data); return(db.Sql(@"select count(*) from ( " + sql + " ) tb_temp").QuerySingle <int>()); }
protected ISelectBuilder <T> BuilderParse(ParamQuery param) { if (param == null) { param = new ParamQuery(); } var data = param.GetData(); var sFrom = data.From.Length == 0 ? typeof(T).Name : data.From; var sSelect = string.IsNullOrEmpty(data.Select) ? (sFrom + ".*") : data.Select; var selectBuilder = db.Select <T>(sSelect).From(sFrom) .Where(data.WhereSql) .GroupBy(data.GroupBy) .Having(data.Having) .OrderBy(data.OrderBy) .Paging(data.PageIndex, data.PageSize); string sql = selectBuilder.Data.Command.Data.Context.Data.FluentDataProvider.GetSqlForSelectBuilder(selectBuilder.Data); return(selectBuilder); }