From 2d4c7ee9e22972bfdfdef67a88dfee4d6f698b51 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 11 Sep 2017 11:15:43 +0800 Subject: [PATCH] - --- Src/Asp.Net/SqlServerTest/Demos/1_Query.cs | 1 + .../QueryableProvider/QueryableProvider.cs | 18 +++++++++++++++++- Src/Asp.Net/SqlSugar/Interface/IQueryable.cs | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 1f764b84a..e1c483831 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -196,6 +196,7 @@ namespace OrmTest.Demo var sum2 = db.Queryable((st,sc)=>st.SchoolId==sc.Id).Sum((st,sc) => sc.Id); var isAny = db.Queryable().Where(it => it.Id == -1).Any(); var isAny2 = db.Queryable().Any(it => it.Id == -1); + var count = db.Queryable().Count(it => it.Id >0); var date = db.Queryable().Where(it => it.CreateTime.Value.Date == DateTime.Now.Date).ToList(); var getListByRename = db.Queryable().AS("Student").ToList(); var in1 = db.Queryable().In(it => it.Id, new int[] { 1, 2, 3 }).ToList(); diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 010f876e3..500c6b5ce 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -444,6 +444,13 @@ namespace SqlSugar QueryBuilder.IsCount = false; return reval; } + public virtual int Count(Expression> expression) + { + _Where(expression); + var result = Count(); + this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last()); + return result; + } public virtual TResult Max(string maxField) { @@ -653,7 +660,16 @@ namespace SqlSugar result.Start(); return result; } - + public Task CountAsync(Expression> expression) + { + Task result = new Task(() => + { + ISugarQueryable asyncQueryable = CopyQueryable(); + return asyncQueryable.Count(expression); + }); + result.Start(); + return result; + } public Task MaxAsync(string maxField) { Task result = new Task(() => diff --git a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs index 5bfa66e1f..4486051af 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs @@ -75,6 +75,8 @@ namespace SqlSugar int Count(); Task CountAsync(); + int Count(Expression> expression); + Task CountAsync(Expression> expression); TResult Max(string maxField); Task MaxAsync(string maxField); TResult Max(Expression> expression);