From cd1e6e4a7b67309f5368bee6875a40d629d40cce Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Thu, 7 Mar 2019 15:15:42 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=8D=87=E7=BA=A7=20nuget=20=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=8C=85=EF=BC=9B=20-=20=E5=A2=9E=E5=8A=A0=20.netfram?= =?UTF-8?q?ework=204.6.1=20=E7=A4=BA=E8=8C=83=E9=A1=B9=E7=9B=AE=EF=BC=9B?= =?UTF-8?q?=20-=20PostgreSQL=20=E8=BF=9E=E6=8E=A5=E6=B1=A0=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E9=BB=98=E8=AE=A4=E5=80=BC=E6=94=B9=E4=B8=BA=2050?= =?UTF-8?q?=EF=BC=9B=20-=20ISelect=20=E5=A2=9E=E5=8A=A0=20Any/AnyAsync(Exp?= =?UTF-8?q?ression)=EF=BC=8C=E4=B8=BA=E7=9A=84=E5=B0=91=E5=86=99=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=20Where=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql/Interface/Curd/ISelect/ISelect1.cs | 8 ++++++++ FreeSql/Interface/Curd/ISelect/ISelect10.cs | 3 +++ FreeSql/Interface/Curd/ISelect/ISelect3.cs | 3 +++ FreeSql/Interface/Curd/ISelect/ISelect4.cs | 3 +++ FreeSql/Interface/Curd/ISelect/ISelect5.cs | 3 +++ FreeSql/Interface/Curd/ISelect/ISelect6.cs | 3 +++ FreeSql/Interface/Curd/ISelect/ISelect7.cs | 3 +++ FreeSql/Interface/Curd/ISelect/ISelect8.cs | 3 +++ FreeSql/Interface/Curd/ISelect/ISelect9.cs | 3 +++ .../CommonProvider/SelectProvider/Select10Provider.cs | 4 ++++ .../CommonProvider/SelectProvider/Select1Provider.cs | 4 +++- .../CommonProvider/SelectProvider/Select3Provider.cs | 4 ++++ .../CommonProvider/SelectProvider/Select4Provider.cs | 4 ++++ .../CommonProvider/SelectProvider/Select5Provider.cs | 4 ++++ .../CommonProvider/SelectProvider/Select6Provider.cs | 4 ++++ .../CommonProvider/SelectProvider/Select7Provider.cs | 4 ++++ .../CommonProvider/SelectProvider/Select8Provider.cs | 4 ++++ .../CommonProvider/SelectProvider/Select9Provider.cs | 4 ++++ .../PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs | 2 +- 19 files changed, 68 insertions(+), 2 deletions(-) diff --git a/FreeSql/Interface/Curd/ISelect/ISelect1.cs b/FreeSql/Interface/Curd/ISelect/ISelect1.cs index 5e13ee03..cac2ef9e 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect1.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect1.cs @@ -6,6 +6,14 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class { + /// + /// 执行SQL查询,是否有记录 + /// + /// lambda表达式 + /// + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + /// /// 执行SQL查询,返回指定字段的记录,记录不存在时返回 Count 为 0 的列表 /// diff --git a/FreeSql/Interface/Curd/ISelect/ISelect10.cs b/FreeSql/Interface/Curd/ISelect/ISelect10.cs index 7b33c089..c4776b94 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect10.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect10.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class { + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + List ToList(Expression> select); Task> ToListAsync(Expression> select); string ToSql(Expression> select); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect3.cs b/FreeSql/Interface/Curd/ISelect/ISelect3.cs index 4dfb4661..951ffbce 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect3.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect3.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class { + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + List ToList(Expression> select); Task> ToListAsync(Expression> select); string ToSql(Expression> select); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect4.cs b/FreeSql/Interface/Curd/ISelect/ISelect4.cs index 3bf0b5c0..5f501458 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect4.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect4.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class { + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + List ToList(Expression> select); Task> ToListAsync(Expression> select); string ToSql(Expression> select); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect5.cs b/FreeSql/Interface/Curd/ISelect/ISelect5.cs index 181d3c40..b0285e0d 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect5.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect5.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class { + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + List ToList(Expression> select); Task> ToListAsync(Expression> select); string ToSql(Expression> select); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect6.cs b/FreeSql/Interface/Curd/ISelect/ISelect6.cs index 4a7709a9..18320b53 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect6.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect6.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class { + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + List ToList(Expression> select); Task> ToListAsync(Expression> select); string ToSql(Expression> select); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect7.cs b/FreeSql/Interface/Curd/ISelect/ISelect7.cs index 9b92442e..4d9b93a7 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect7.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect7.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class { + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + List ToList(Expression> select); Task> ToListAsync(Expression> select); string ToSql(Expression> select); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect8.cs b/FreeSql/Interface/Curd/ISelect/ISelect8.cs index a8d1c21c..42165a52 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect8.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect8.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class { + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + List ToList(Expression> select); Task> ToListAsync(Expression> select); string ToSql(Expression> select); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect9.cs b/FreeSql/Interface/Curd/ISelect/ISelect9.cs index b485fbf8..884c089b 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect9.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect9.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace FreeSql { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class { + bool Any(Expression> exp); + Task AnyAsync(Expression> exp); + List ToList(Expression> select); Task> ToListAsync(Expression> select); string ToSql(Expression> select); diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs index 5b36e44b..27cb26f3 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs @@ -56,5 +56,9 @@ namespace FreeSql.Internal.CommonProvider { ISelect ISelect.Where(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)); ISelect ISelect.WhereIf(bool condition, Expression> exp) => condition ? this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)) : this; + + bool ISelect.Any(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).Any(); + + Task ISelect.AnyAsync(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs index e7249116..75eb4afe 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs @@ -117,6 +117,8 @@ namespace FreeSql.Internal.CommonProvider { public ISelect WhereIf(bool condition, Expression> exp) => condition ? this.InternalWhere(exp?.Body) : this; - + public bool Any(Expression> exp) => this.Where(exp).Any(); + + public Task AnyAsync(Expression> exp) => this.Where(exp).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs index 53313f55..5c5aad42 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs @@ -49,5 +49,9 @@ namespace FreeSql.Internal.CommonProvider { ISelect ISelect.Where(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)); ISelect ISelect.WhereIf(bool condition, Expression> exp) => condition ? this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)) : this; + + bool ISelect.Any(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).Any(); + + Task ISelect.AnyAsync(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs index 18b61c25..aab3891f 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs @@ -50,5 +50,9 @@ namespace FreeSql.Internal.CommonProvider { ISelect ISelect.Where(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)); ISelect ISelect.WhereIf(bool condition, Expression> exp) => condition ? this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)) : this; + + bool ISelect.Any(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).Any(); + + Task ISelect.AnyAsync(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs index 4e3321da..06eac465 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs @@ -51,5 +51,9 @@ namespace FreeSql.Internal.CommonProvider { ISelect ISelect.Where(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)); ISelect ISelect.WhereIf(bool condition, Expression> exp) => condition ? this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)) : this; + + bool ISelect.Any(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).Any(); + + Task ISelect.AnyAsync(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs index 429c5c8a..b88a7cbb 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs @@ -52,5 +52,9 @@ namespace FreeSql.Internal.CommonProvider { ISelect ISelect.Where(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)); ISelect ISelect.WhereIf(bool condition, Expression> exp) => condition ? this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)) : this; + + bool ISelect.Any(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).Any(); + + Task ISelect.AnyAsync(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs index 00544dd4..3c2ea28b 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs @@ -53,5 +53,9 @@ namespace FreeSql.Internal.CommonProvider { ISelect ISelect.Where(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)); ISelect ISelect.WhereIf(bool condition, Expression> exp) => condition ? this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)) : this; + + bool ISelect.Any(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).Any(); + + Task ISelect.AnyAsync(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs index 4370d3c9..e09a5f23 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs @@ -54,5 +54,9 @@ namespace FreeSql.Internal.CommonProvider { ISelect ISelect.Where(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)); ISelect ISelect.WhereIf(bool condition, Expression> exp) => condition ? this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)) : this; + + bool ISelect.Any(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).Any(); + + Task ISelect.AnyAsync(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs index b349e495..6a1410b6 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs @@ -55,5 +55,9 @@ namespace FreeSql.Internal.CommonProvider { ISelect ISelect.Where(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)); ISelect ISelect.WhereIf(bool condition, Expression> exp) => condition ? this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)) : this; + + bool ISelect.Any(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).Any(); + + Task ISelect.AnyAsync(Expression> exp) => this.Where(_commonExpression.ExpressionWhereLambda(_tables, exp?.Body, null)).AnyAsync(); } } \ No newline at end of file diff --git a/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs b/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs index f47f935f..bd9978b0 100644 --- a/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs +++ b/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs @@ -48,7 +48,7 @@ namespace FreeSql.PostgreSQL { internal PostgreSQLConnectionPool _pool; public string Name { get; set; } = "PostgreSQL NpgsqlConnection 对象池"; - public int PoolSize { get; set; } = 100; + public int PoolSize { get; set; } = 50; public TimeSpan SyncGetTimeout { get; set; } = TimeSpan.FromSeconds(10); public int AsyncGetCapacity { get; set; } = 10000; public bool IsThrowGetTimeoutException { get; set; } = true;