Ejemplo n.º 1
0
        /// <summary>
        /// 直接执行union querybypage操作,并返回结果
        /// </summary>
        /// <typeparam name="TSource"></typeparam>
        /// <param name="source"></param>
        /// <param name="up"></param>
        /// <param name="order_by"></param>
        /// <param name="is_all"></param>
        /// <param name="express"></param>
        /// <returns></returns>
        public static UnitDataCollection UnionQueryByPage <TSource>(this LinqDLR2Sql <TSource> source, UnitParameter up, string order_by, bool is_all = false, params LinqDLR2Sql <TSource>[] express)
        {
            var sql = source.ToSql();

            up.SetValue("orderby", order_by);
            var data = source.SQLGenerator.ConditionValues;

            if (express != null)
            {
                foreach (var e in express)
                {
                    sql += $@"
{(is_all ? "union all" : "union")}
{e.ToSql()}";
                    foreach (var item in e.SQLGenerator.ConditionValues)
                    {
                        data.Add(item.Key, item.Value);
                    }
                }
            }
            up.SetValue("sql", sql);
            foreach (var item in data)
            {
                up.SetValue(item.Key, item.Value);
            }
            return(DBUnitProxy.QueryByPage <LamdaExpressUnit>(up, ""));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 直接执行翻页查询
        /// </summary>
        /// <typeparam name="TSource"></typeparam>
        /// <param name="source"></param>
        /// <param name="up"></param>
        /// <param name="orderby">排序语句</param>
        /// <returns></returns>
        public static UnitDataCollection QueryByPage <TSource>(this LinqDLR2Sql <TSource> source, UnitParameter up, string orderby = "")
        {
            var sql  = source.ToSql();
            var data = source.SQLGenerator.ConditionValues;

            up.SetValue("sql", sql);
            up.SetValue("orderby", orderby);
            foreach (var item in data)
            {
                up.SetValue(item.Key, item.Value);
            }
            return(DBUnitProxy.QueryByPage <LamdaExpressUnit>(up, ""));
        }