Update Queryable.PartitionBy

This commit is contained in:
sunkaixuan 2017-07-14 02:35:55 +08:00
parent d86a08e208
commit c2b00ade08
2 changed files with 21 additions and 3 deletions

View File

@ -390,8 +390,19 @@ namespace SqlSugar
public virtual int Count()
{
QueryBuilder.IsCount = true;
var sql = QueryBuilder.ToSqlString();
var sql = string.Empty;
if (QueryBuilder.PartitionByValue.IsValuable())
{
sql = QueryBuilder.ToSqlString();
sql = QueryBuilder.ToCountSql(sql);
}
else
{
QueryBuilder.IsCount = true;
sql = QueryBuilder.ToSqlString();
}
var reval = Context.Ado.GetInt(sql, QueryBuilder.Parameters.ToArray());
RestoreMapping();
QueryBuilder.IsCount = false;

View File

@ -216,6 +216,7 @@ namespace SqlSugar
}
public virtual string ToSqlString()
{
string oldOrderBy=this.OrderByValue;
if (!IsDisabledGobalFilter && this.Context.QueryFilter.GeFilterList.IsValuable())
{
var gobalFilterList = this.Context.QueryFilter.GeFilterList.Where(it => it.FilterName.IsNullOrEmpty()).ToList();
@ -245,10 +246,16 @@ namespace SqlSugar
if (ExternalPageIndex > 0) {
result = ToPageSql(result,(ExternalPageIndex-1)*ExternalPageSize,ExternalPageSize);
}
this.OrderByValue = oldOrderBy;
return result;
}
protected virtual string ToPageSql(string sql,int? take,int? skip)
public virtual string ToCountSql(string sql) {
return string.Format(" SELECT COUNT(1) FROM ({0}) CountTable ",sql);
}
public virtual string ToPageSql(string sql,int? take,int? skip)
{
if (skip != null && take == null)
{