From 7ced23ea0a86a45d007fa285a5cfaec48640a314 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 27 Apr 2017 00:55:02 +0800 Subject: [PATCH] =?UTF-8?q?Sugar=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DMLBuilder/LambadaQueryBuilder.cs | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/SqlSugar/Abstract/SqlBuilderProvider/DMLBuilder/LambadaQueryBuilder.cs b/SqlSugar/Abstract/SqlBuilderProvider/DMLBuilder/LambadaQueryBuilder.cs index 457af92cd..0618f3d83 100644 --- a/SqlSugar/Abstract/SqlBuilderProvider/DMLBuilder/LambadaQueryBuilder.cs +++ b/SqlSugar/Abstract/SqlBuilderProvider/DMLBuilder/LambadaQueryBuilder.cs @@ -92,6 +92,17 @@ namespace SqlSugar return " {0} JOIN {1} {2} ON {3} "; } } + public virtual string PageTempalte + { + get + { + return @" + WITH PageTable AS( + {0} + ) + SELECT * FROM (SELECT *,ROW_NUMBER() OVER({1}) AS RowIndex FROM PageTable ) T BETWEEN {2} AND {3}"; + } + } #endregion #region Common Methods @@ -117,8 +128,23 @@ namespace SqlSugar public virtual string ToSqlString() { Sql = new StringBuilder(); - Sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString,GetGroupByString,GetOrderByString); - return Sql.ToString(); + Sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString, GetOrderByString); + if (Skip != null && Take == null) + { + return string.Format(PageTempalte, Sql.ToString(), GetOrderByString, 0,Take); + } + else if (Skip == null && Take != null) + { + return string.Format(PageTempalte, Sql.ToString(), GetOrderByString, Skip+1,long.MaxValue); + } + else if (Skip != null && Take == null) + { + return string.Format(PageTempalte, Sql.ToString(), GetOrderByString, Skip+1, Take); + } + else { + return Sql.ToString(); + } + } public virtual string ToJoinString(JoinQueryInfo joinInfo) { @@ -218,7 +244,8 @@ namespace SqlSugar get { var result = Builder.GetTranslationTableName(EntityName); - if (this.TableWithString.IsValuable()) { + if (this.TableWithString.IsValuable()) + { result += " " + TableWithString; } if (this.TableShortName.IsValuable()) @@ -237,7 +264,7 @@ namespace SqlSugar { get { - return this.OrderByValue; + return this.OrderByValue; } }