/// <summary>
        /// 条件筛选 例如:expression 为 it=>it.a  inValues值为 new string[]{"a" ,"b"} 生成的SQL就是  a in('a','b')
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static SqlSugar.Queryable <T> In <T, FieldType>(this SqlSugar.Queryable <T> queryable, Expression <Func <T, object> > expression, List <FieldType> inValues)
        {
            ResolveExpress re          = new ResolveExpress();
            var            InFieldName = re.GetExpressionRightFiled(expression);

            return(In <T, FieldType>(queryable, InFieldName, inValues));
        }
        /// <summary>
        /// 获取最小值
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="minField">列</param>
        /// <returns></returns>
        public static object Min <T>(this SqlSugar.Queryable <T> queryable, Expression <Func <T, object> > expression)
        {
            ResolveExpress re       = new ResolveExpress();
            var            minField = re.GetExpressionRightFiled(expression);

            return(Min <T, object>(queryable, minField));
        }
示例#3
0
        /// <summary>
        /// 条件筛选 例如:InFieldName 为 a inValues 值为 new string[]{"a" ,"b"} 生成的SQL就是  a in('a','b')
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static SqlSugar.Queryable <T> In <T, FieldType>(this SqlSugar.Queryable <T> queryable, string InFieldName, params FieldType[] inValues)
        {
            var            type = queryable.Type;
            ResolveExpress re   = new ResolveExpress();

            queryable.Where.Add(string.Format(" AND {0} IN ({1})", InFieldName, inValues.ToJoinSqlInVal()));
            return(queryable);
        }
        /// <summary>
        /// 分组
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="groupFileds">如:id,name </param>
        /// <returns></returns>
        public static SqlSugar.Queryable <T> GroupBy <T>(this SqlSugar.Queryable <T> queryable, Expression <Func <T, object> > expression)
        {
            ResolveExpress re    = new ResolveExpress();
            var            field = re.GetExpressionRightFiled(expression);
            var            pre   = queryable.GroupBy.IsValuable() ? "," : "";

            queryable.GroupBy += pre + field;
            return(queryable);
        }
示例#5
0
 /// <summary>
 /// 从起始点向后取指定条数的数据
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <param name="num"></param>
 /// <returns></returns>
 public static SqlSugar.Queryable <T> Take <T>(this SqlSugar.Queryable <T> queryable, int num)
 {
     if (queryable.OrderBy.IsNullOrEmpty())
     {
         throw new Exception(".Take必需使用.OrderBy排序");
     }
     queryable.Take = num;
     return(queryable);
 }
示例#6
0
 /// <summary>
 ///  跳过序列中指定数量的元素,然后返回剩余的元素。
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <param name="index"></param>
 /// <returns></returns>
 public static SqlSugar.Queryable <T> Skip <T>(this SqlSugar.Queryable <T> queryable, int index)
 {
     if (queryable.OrderBy.IsNullOrEmpty())
     {
         throw new Exception(".Skip必需使用.Order排序");
     }
     queryable.Skip = index;
     return(queryable);
 }
示例#7
0
        /// <summary>
        /// 将Queryable转换为DataTable
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <returns></returns>
        public static DataTable ToDataTable <T>(this SqlSugar.Queryable <T> queryable)
        {
            StringBuilder sbSql     = SqlSugarTool.GetQueryableSql <T>(queryable);
            var           dataTable = queryable.DB.GetDataTable(sbSql.ToString(), queryable.Params.ToArray());

            queryable = null;
            sbSql     = null;
            return(dataTable);
        }
        /// <summary>
        /// 排序
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="orderFileds">如:id asc,name desc </param>
        /// <returns></returns>
        public static SqlSugar.Queryable <T> OrderBy <T>(this SqlSugar.Queryable <T> queryable, Expression <Func <T, object> > expression, OrderByType type = OrderByType.asc)
        {
            ResolveExpress re    = new ResolveExpress();
            var            field = re.GetExpressionRightFiled(expression);
            var            pre   = queryable.OrderBy.IsValuable() ? "," : "";

            queryable.OrderBy += pre + field + " " + type.ToString().ToUpper();
            return(queryable);
        }
        internal static StringBuilder GetQueryableSql <T>(SqlSugar.Queryable <T> queryable)
        {
            StringBuilder sbSql     = new StringBuilder();
            string        tableName = queryable.TableName.IsNullOrEmpty() ? queryable.TName : queryable.TableName;

            if (queryable.DB.Language.IsValuable() && queryable.DB.Language.Suffix.IsValuable())
            {
                var viewNameList = LanguageHelper.GetLanguageViewNameList(queryable.DB);
                var isLanView    = viewNameList.IsValuable() && viewNameList.Any(it => it == tableName);
                if (!queryable.DB.Language.Suffix.StartsWith(LanguageHelper.PreSuffix))
                {
                    queryable.DB.Language.Suffix = LanguageHelper.PreSuffix + queryable.DB.Language.Suffix;
                }

                //将视图变更为多语言的视图
                if (isLanView)
                {
                    tableName = typeof(T).Name + queryable.DB.Language.Suffix;
                }
            }
            if (queryable.DB.PageModel == PageModel.RowNumber)
            {
                #region  rowNumber
                string withNoLock = queryable.DB.IsNoLock ? "WITH(NOLOCK)" : null;
                var    order      = queryable.OrderBy.IsValuable() ? (",row_index=ROW_NUMBER() OVER(ORDER BY " + queryable.OrderBy + " )") : null;

                sbSql.AppendFormat("SELECT " + queryable.Select.GetSelectFiles() + " {1} FROM {0} {2} WHERE 1=1 {3} {4} ", tableName, order, withNoLock, string.Join("", queryable.Where), queryable.GroupBy.GetGroupBy());
                if (queryable.Skip == null && queryable.Take != null)
                {
                    sbSql.Insert(0, "SELECT " + queryable.Select.GetSelectFiles() + " FROM ( ");
                    sbSql.Append(") t WHERE t.row_index<=" + queryable.Take);
                }
                else if (queryable.Skip != null && queryable.Take == null)
                {
                    sbSql.Insert(0, "SELECT " + queryable.Select.GetSelectFiles() + " FROM ( ");
                    sbSql.Append(") t WHERE t.row_index>" + (queryable.Skip));
                }
                else if (queryable.Skip != null && queryable.Take != null)
                {
                    sbSql.Insert(0, "SELECT " + queryable.Select.GetSelectFiles() + " FROM ( ");
                    sbSql.Append(") t WHERE t.row_index BETWEEN " + (queryable.Skip + 1) + " AND " + (queryable.Skip + queryable.Take));
                }
                #endregion
            }
            else
            {
                #region offset
                string withNoLock = queryable.DB.IsNoLock ? "WITH(NOLOCK)" : null;
                var    order      = queryable.OrderBy.IsValuable() ? ("ORDER BY " + queryable.OrderBy + " ") : null;
                sbSql.AppendFormat("SELECT " + queryable.Select.GetSelectFiles() + " {1} FROM {0} {2} WHERE 1=1 {3} {4} ", tableName, "", withNoLock, string.Join("", queryable.Where), queryable.GroupBy.GetGroupBy());
                sbSql.Append(order);
                sbSql.AppendFormat("OFFSET {0} ROW FETCH NEXT {1} ROWS ONLY", queryable.Skip, queryable.Take);
                #endregion
            }
            return(sbSql);
        }
示例#10
0
 /// <summary>
 /// 将Queryable转换为分页后的List《T》集合
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <param name="pageIndex">当前页码</param>
 /// <param name="pageSize">每页显示数量</param>
 /// <returns></returns>
 public static List <T> ToPageList <T>(this SqlSugar.Queryable <T> queryable, int pageIndex, int pageSize)
 {
     if (queryable.OrderBy.IsNullOrEmpty())
     {
         throw new Exception("分页必需使用.Order排序");
     }
     queryable.Skip = (pageIndex - 1) * pageSize;
     queryable.Take = pageSize;
     return(queryable.ToList());
 }
示例#11
0
        /// <summary>
        ///   返回序列中的第一个元素,如果序列为NULL返回default(T)
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <returns></returns>
        public static T FirstOrDefault <T>(this  SqlSugar.Queryable <T> queryable)
        {
            var reval = queryable.ToList();

            if (reval == null || reval.Count == 0)
            {
                return(default(T));
            }
            return(reval.First());
        }
示例#12
0
        /// <summary>
        /// 获取序列总记录数
        /// </summary>
        /// <param name="queryable"></param>
        /// <returns></returns>
        public static int Count <T>(this SqlSugar.Queryable <T> queryable)
        {
            StringBuilder sbSql      = new StringBuilder();
            string        withNoLock = queryable.DB.IsNoLock ? "WITH(NOLOCK)" : null;

            sbSql.AppendFormat("SELECT COUNT({3})  FROM {0} {1} WHERE 1=1 {2} {4} ", queryable.TName, withNoLock, string.Join("", queryable.Where), queryable.Select.GetSelectFiles(), queryable.GroupBy.GetGroupBy());
            var count = queryable.DB.GetInt(sbSql.ToString(), queryable.Params.ToArray());

            return(count);
        }
示例#13
0
        /// <summary>
        /// 条件筛选
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static SqlSugar.Queryable <T> Where <T>(this SqlSugar.Queryable <T> queryable, Expression <Func <T, bool> > expression)
        {
            var            type = queryable.Type;
            ResolveExpress re   = new ResolveExpress();

            re.ResolveExpression(re, expression);
            queryable.Params.AddRange(re.Paras);
            queryable.Where.Add(re.SqlWhere);
            return(queryable);
        }
示例#14
0
        /// <summary>
        /// 将Queryable转换为List《T》集合
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <returns></returns>
        public static List <T> ToList <T>(this SqlSugar.Queryable <T> queryable)
        {
            StringBuilder sbSql  = SqlSugarTool.GetQueryableSql <T>(queryable);
            var           reader = queryable.DB.GetReader(sbSql.ToString(), queryable.Params.ToArray());
            var           reval  = SqlSugarTool.DataReaderToList <T>(typeof(T), reader, queryable.Select.GetSelectFiles());

            queryable = null;
            sbSql     = null;
            return(reval);
        }
示例#15
0
        /// <summary>
        /// 获取最小值
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="minField">列</param>
        /// <returns></returns>
        public static TResult Min <TSource, TResult>(this SqlSugar.Queryable <TSource> queryable, string minField)
        {
            StringBuilder sbSql      = new StringBuilder();
            string        withNoLock = queryable.DB.IsNoLock ? "WITH(NOLOCK)" : null;

            sbSql.AppendFormat("SELECT MIN({3})  FROM {0} {1} WHERE 1=1 {2} {4} ", queryable.TName, withNoLock, string.Join("", queryable.Where), minField, queryable.GroupBy.GetGroupBy());
            var objValue = queryable.DB.GetScalar(sbSql.ToString(), queryable.Params.ToArray());
            var reval    = Convert.ChangeType(objValue, typeof(TResult));

            return((TResult)reval);
        }
示例#16
0
        /// <summary>
        ///  返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static T Single <T>(this  SqlSugar.Queryable <T> queryable, Expression <Func <T, bool> > expression)
        {
            var type = queryable.Type;

            queryable.WhereIndex = queryable.WhereIndex + 100;
            ResolveExpress re = new ResolveExpress(queryable.WhereIndex);

            re.ResolveExpression(re, expression);
            queryable.Where.Add(re.SqlWhere);
            queryable.Params.AddRange(re.Paras);
            return(queryable.ToList().Single());
        }
示例#17
0
        /// <summary>
        /// 条件筛选
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="whereString"></param>
        /// <returns></returns>
        public static SqlSugar.Queryable <T> Where <T>(this SqlSugar.Queryable <T> queryable, string whereString, object whereObj = null)
        {
            var    type     = queryable.Type;
            string whereStr = string.Format(" AND {0} ", whereString);

            queryable.Where.Add(whereStr);
            if (whereObj != null)
            {
                queryable.Params.AddRange(SqlSugarTool.GetParameters(whereObj));
            }
            return(queryable);
        }
示例#18
0
        /// <summary>
        /// 将源数据对象转换到新对象中
        /// </summary>
        /// <typeparam name="TSource"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static SqlSugar.Queryable <TResult> Select <TSource, TResult>(this SqlSugar.Queryable <TSource> queryable, string select)
        {
            var type = typeof(TSource);

            SqlSugar.Queryable <TResult> reval = new Queryable <TResult>()
            {
                DB        = queryable.DB,
                OrderBy   = queryable.OrderBy,
                Params    = queryable.Params,
                Skip      = queryable.Skip,
                Take      = queryable.Take,
                Where     = queryable.Where,
                TableName = type.Name,
                GroupBy   = queryable.GroupBy,
                Select    = select
            };
            return(reval);
        }
示例#19
0
        /// <summary>
        /// 将源数据对象转换到新对象中
        /// </summary>
        /// <typeparam name="TSource"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="queryable"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static SqlSugar.Queryable <TResult> Select <TSource, TResult>(this SqlSugar.Queryable <TSource> queryable, Expression <Func <TSource, TResult> > expression)
        {
            var type = typeof(TSource);

            SqlSugar.Queryable <TResult> reval = new Queryable <TResult>()
            {
                DB        = queryable.DB,
                OrderBy   = queryable.OrderBy,
                Params    = queryable.Params,
                Skip      = queryable.Skip,
                Take      = queryable.Take,
                Where     = queryable.Where,
                TableName = type.Name,
                GroupBy   = queryable.GroupBy,
                Select    = Regex.Match(expression.ToString(), @"(?<=\{).*?(?=\})").Value
            };
            reval.Select = Regex.Replace(reval.Select, @"(?<=\=).*?\.", "");
            return(reval);
        }
示例#20
0
        /// <summary>
        /// 将Queryable转换为List《T》集合
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <returns></returns>
        public static List <T> ToList <T>(this SqlSugar.Queryable <T> queryable)
        {
            StringBuilder sbSql = new StringBuilder();

            try
            {
                string withNoLock = queryable.DB.IsNoLock ? "WITH(NOLOCK)" : null;
                var    order      = queryable.OrderBy.IsValuable() ? (",row_index=ROW_NUMBER() OVER(ORDER BY " + queryable.OrderBy + " )") : null;

                sbSql.AppendFormat("SELECT " + queryable.Select.GetSelectFiles() + " {1} FROM {0} {2} WHERE 1=1 {3} {4} ", queryable.TableName.IsNullOrEmpty() ? queryable.TName : queryable.TableName, order, withNoLock, string.Join("", queryable.Where), queryable.GroupBy.GetGroupBy());
                if (queryable.Skip == null && queryable.Take != null)
                {
                    sbSql.Insert(0, "SELECT " + queryable.Select.GetSelectFiles() + " FROM ( ");
                    sbSql.Append(") t WHERE t.row_index<=" + queryable.Take);
                }
                else if (queryable.Skip != null && queryable.Take == null)
                {
                    sbSql.Insert(0, "SELECT " + queryable.Select.GetSelectFiles() + " FROM ( ");
                    sbSql.Append(") t WHERE t.row_index>" + (queryable.Skip));
                }
                else if (queryable.Skip != null && queryable.Take != null)
                {
                    sbSql.Insert(0, "SELECT " + queryable.Select.GetSelectFiles() + " FROM ( ");
                    sbSql.Append(") t WHERE t.row_index BETWEEN " + (queryable.Skip + 1) + " AND " + (queryable.Skip + queryable.Take));
                }

                var reader = queryable.DB.GetReader(sbSql.ToString(), queryable.Params.ToArray());
                var reval  = SqlSugarTool.DataReaderToList <T>(typeof(T), reader, queryable.Select.GetSelectFiles());
                queryable = null;
                return(reval);
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("sql:{0}\r\n message:{1}", ex.Message));
            }
            finally
            {
                sbSql     = null;
                queryable = null;
            }
        }
示例#21
0
 /// <summary>
 ///  返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <returns></returns>
 public static T Single <T>(this  SqlSugar.Queryable <T> queryable)
 {
     return(queryable.ToList().Single());
 }
示例#22
0
 /// <summary>
 /// 将Queryable转换为Json
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <returns></returns>
 public static string ToJson <T>(this SqlSugar.Queryable <T> queryable)
 {
     return(JsonConverter.DataTableToJson(ToDataTable <T>(queryable), queryable.DB.SerializerDateFormat));
 }
示例#23
0
 /// <summary>
 /// 将Queryable转换为Dynamic
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <returns></returns>
 public static dynamic ToDynamic <T>(this SqlSugar.Queryable <T> queryable)
 {
     return(JsonConverter.ConvertJson(ToJson <T>(queryable)));
 }
        internal static StringBuilder GetQueryableSql <T>(SqlSugar.Queryable <T> queryable)
        {
            string        joinInfo  = string.Join(" ", queryable.JoinTableValue);
            StringBuilder sbSql     = new StringBuilder();
            string        tableName = queryable.TableName.IsNullOrEmpty() ? queryable.TName : queryable.TableName;

            if (queryable.DB.Language.IsValuable() && queryable.DB.Language.Suffix.IsValuable())
            {
                var viewNameList = LanguageHelper.GetLanguageViewNameList(queryable.DB);
                var isLanView    = viewNameList.IsValuable() && viewNameList.Any(it => it == tableName);
                if (!queryable.DB.Language.Suffix.StartsWith(LanguageHelper.PreSuffix))
                {
                    queryable.DB.Language.Suffix = LanguageHelper.PreSuffix + queryable.DB.Language.Suffix;
                }

                //将视图变更为多语言的视图
                if (isLanView)
                {
                    tableName = typeof(T).Name + queryable.DB.Language.Suffix;
                }
            }
            if (queryable.DB.PageModel == PageModel.RowNumber)
            {
                #region  rowNumber
                string withNoLock = queryable.DB.IsNoLock ? "WITH(NOLOCK)" : null;

                sbSql.AppendFormat("SELECT " + queryable.SelectValue.GetSelectFiles() + " FROM {0} {4} {1} WHERE 1=1 {2} {3} ", tableName.GetTranslationSqlName(), withNoLock, string.Join("", queryable.WhereValue), queryable.GroupByValue.GetGroupBy(), joinInfo);

                string strTmp   = string.Empty;
                string strOrder = string.Empty;
                string strSql   = string.Empty;
                if (queryable.OrderByValue.IsValuable())
                {
                    strOrder = " order by " + queryable.OrderByValue;
                    strTmp   = queryable.OrderByValue.IndexOf("DESC") >= 0 ? " <(select min " : " >(select max ";
                }

                if (queryable.Skip == null && queryable.Take != null)
                {
                    //if (joinInfo.IsValuable())
                    //{
                    //    sbSql.Insert(0, "SELECT * FROM ( ");
                    //}
                    //else
                    //{
                    //    sbSql.Insert(0, "SELECT " + queryable.SelectValue.GetSelectFiles() + " FROM ( ");
                    //}
                    //sbSql.Append(") t WHERE t.row_index<=" + queryable.Take);

                    strSql = string.Format("select top {0} {1} from {2} {3} {4} where 1=1 {5} {6} {7}", queryable.Take, queryable.SelectValue.GetSelectFiles(), tableName.GetTranslationSqlName(), joinInfo, withNoLock, string.Join("", queryable.WhereValue), queryable.GroupByValue.GetGroupBy(), strOrder);
                }
                else if (queryable.Skip != null && queryable.Take == null)
                {
                    //if (joinInfo.IsValuable())
                    //{
                    //    sbSql.Insert(0, "SELECT * FROM ( ");
                    //}
                    //else
                    //{
                    //    sbSql.Insert(0, "SELECT " + queryable.SelectValue.GetSelectFiles() + " FROM ( ");
                    //}
                    //sbSql.Append(") t WHERE t.row_index>" + (queryable.Skip));
                    strSql = string.Format("select {0} from {1}{2}{3} where 1=1 and [{5}]{6}([{5}]) from (select top {7} [{5}] from {1}{2}{3} where 1=1 {4}{9}) as tblTmp) {4} {8} {9}", queryable.SelectValue.GetSelectFiles(), tableName.GetTranslationSqlName(), joinInfo, withNoLock, string.Join("", queryable.WhereValue), queryable.OrderByField, strTmp, queryable.Skip, queryable.GroupByValue.GetGroupBy(), strOrder);
                }
                else if (queryable.Skip != null && queryable.Take != null)
                {
                    if (queryable.Skip == 0)
                    {
                        strSql = string.Format("select top {0} {1} from {2} {3} {4} where 1=1 {5} {6} {7}", queryable.Take, queryable.SelectValue.GetSelectFiles(), tableName.GetTranslationSqlName(), joinInfo, withNoLock, string.Join("", queryable.WhereValue), queryable.GroupByValue.GetGroupBy(), strOrder);
                    }
                    else
                    {
                        strSql = string.Format("select top {0} {1} from {2}{3}{4} where 1=1 and [{6}]{7}([{6}]) from (select top {8} [{6}] from {2}{3}{4} where 1=1 {5}{10}) as tblTmp) {5} {9} {10}", queryable.Take, queryable.SelectValue.GetSelectFiles(), tableName.GetTranslationSqlName(), joinInfo, withNoLock, string.Join("", queryable.WhereValue), queryable.OrderByField, strTmp, queryable.Skip, queryable.GroupByValue.GetGroupBy(), strOrder);
                    }
                    sbSql.Clear();
                    sbSql.Append(strSql);
                    //if (joinInfo.IsValuable())
                    //{
                    //    sbSql.Insert(0, "SELECT * FROM ( ");
                    //}
                    //else
                    //{
                    //    sbSql.Insert(0, "SELECT " + queryable.SelectValue.GetSelectFiles() + " FROM ( ");
                    //}

                    //sbSql.Append(") t WHERE t.row_index BETWEEN " + (queryable.Skip + 1) + " AND " + (queryable.Skip + queryable.Take));
                }
                #endregion
            }
            else
            {
                #region offset
                string withNoLock = queryable.DB.IsNoLock ? "WITH(NOLOCK)" : null;
                var    order      = queryable.OrderByValue.IsValuable() ? ("ORDER BY " + queryable.OrderByValue + " ") : null;
                sbSql.AppendFormat("SELECT " + queryable.SelectValue.GetSelectFiles() + " {1} FROM {0} {5} {2} WHERE 1=1 {3} {4} ", tableName.GetTranslationSqlName(), "", withNoLock, string.Join("", queryable.WhereValue), queryable.GroupByValue.GetGroupBy(), joinInfo);
                sbSql.Append(order);
                if (queryable.Skip != null || queryable.Take != null)
                {
                    sbSql.AppendFormat("OFFSET {0} ROW FETCH NEXT {1} ROWS ONLY", Convert.ToInt32(queryable.Skip), Convert.ToInt32(queryable.Take));
                }
                #endregion
            }
            return(sbSql);
        }
示例#25
0
 /// <summary>
 /// 排序
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <param name="orderFileds">如:id asc,name desc </param>
 /// <returns></returns>
 public static SqlSugar.Queryable <T> OrderBy <T>(this SqlSugar.Queryable <T> queryable, string orderFileds)
 {
     queryable.OrderBy = orderFileds.ToSuperSqlFilter();
     return(queryable);
 }
 /// <summary>
 /// 将源数据对象转换到新对象中
 /// </summary>
 /// <typeparam name="TSource"></typeparam>
 /// <typeparam name="TResult"></typeparam>
 /// <param name="queryable"></param>
 /// <param name="expression"></param>
 /// <returns></returns>
 public static SqlSugar.Queryable <T> Select <T>(this SqlSugar.Queryable <T> queryable, string select)
 {
     queryable.Select = select;
     return(queryable);
 }
示例#27
0
 /// <summary>
 /// 分组
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <param name="groupFileds">如:id,name </param>
 /// <returns></returns>
 public static SqlSugar.Queryable <T> GroupBy <T>(this SqlSugar.Queryable <T> queryable, string groupFileds)
 {
     queryable.GroupBy = groupFileds.ToSuperSqlFilter();
     return(queryable);
 }
示例#28
0
 /// <summary>
 ///  确定序列是否包含任何元素
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <returns></returns>
 public static bool Any <T>(this  SqlSugar.Queryable <T> queryable)
 {
     return(queryable.Count() > 0);
 }
示例#29
0
 /// <summary>
 /// 条件筛选
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryable"></param>
 /// <param name="expression"></param>
 /// <returns></returns>
 public static SqlSugar.Queryable <T> In <T, FieldType>(this SqlSugar.Queryable <T> queryable, string InFieldName, List <FieldType> inValues)
 {
     return(In <T, FieldType>(queryable, InFieldName, inValues.ToArray()));
 }
示例#30
0
        /// <summary>
        ///  返回序列中的第一个元素。
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
        /// <returns></returns>
        public static T First <T>(this  SqlSugar.Queryable <T> queryable)
        {
            var reval = queryable.ToList();

            return(reval.First());
        }