Example #1
0
        /// <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);
        }
Example #2
0
        /// <summary>
        /// 获取实体对象
        /// </summary>
        /// <param name="param">查询参数对象</param>
        /// <returns>返回实体对象T</returns>
        public T GetEntity(ParamQuery param)
        {
            var result = new T();

            result = BuilderParse(param).QuerySingle();
            return(result);
        }
Example #3
0
        /// <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));
        }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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);
        }
Example #6
0
        ///// <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);
        }