diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs index 298626ab6..fd792e613 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs @@ -1229,6 +1229,10 @@ namespace SqlSugar { result = await this.Context.Utilities.DataReaderToSelectJsonListAsync(dataReader); } + else if (QueryBuilder.IsSelectSingleFiledArray) + { + result =await this.Context.Utilities.DataReaderToSelectArrayListAsync(dataReader); + } else if (entityType.IsAnonymousType() || isComplexModel) { result = await this.Context.Utilities.DataReaderToListAsync(dataReader); diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs index 2071670b0..b74f06668 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs @@ -1427,7 +1427,9 @@ namespace SqlSugar } public SqlSugarClient CopyNew() { - return new SqlSugarClient(UtilMethods.CopyConfig(this.Ado.Context.CurrentConnectionConfig)); + var result= new SqlSugarClient(UtilMethods.CopyConfig(this.Ado.Context.CurrentConnectionConfig)); + result.QueryFilter = this.QueryFilter; + return result; } public void ThenMapper(IEnumerable list, Action action) { diff --git a/Src/Asp.NetCore2/SqlSugar/Infrastructure/ContextMethods.cs b/Src/Asp.NetCore2/SqlSugar/Infrastructure/ContextMethods.cs index ce6517a89..c96e55478 100644 --- a/Src/Asp.NetCore2/SqlSugar/Infrastructure/ContextMethods.cs +++ b/Src/Asp.NetCore2/SqlSugar/Infrastructure/ContextMethods.cs @@ -316,6 +316,26 @@ namespace SqlSugar } return result; } + public async Task> DataReaderToSelectArrayListAsync(IDataReader dataReader) + { + List result = new List(); + using (dataReader) + { + while (await ((DbDataReader)dataReader).ReadAsync()) + { + var value = dataReader.GetValue(0); + if (value == null || value == DBNull.Value) + { + result.Add(default(T)); + } + else + { + result.Add((T)value); + } + } + } + return result; + } /// /// DataReaderToList diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IContextMethods.cs b/Src/Asp.NetCore2/SqlSugar/Interface/IContextMethods.cs index c1dbc8555..c6d9498a6 100644 --- a/Src/Asp.NetCore2/SqlSugar/Interface/IContextMethods.cs +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IContextMethods.cs @@ -19,6 +19,7 @@ namespace SqlSugar List DataReaderToList(IDataReader reader); List DataReaderToSelectJsonList(IDataReader reader); List DataReaderToSelectArrayList(IDataReader reader); + Task> DataReaderToSelectArrayListAsync(IDataReader reader); Task> DataReaderToSelectJsonListAsync(IDataReader reader); List DataReaderToListNoUsing(IDataReader reader); Task> DataReaderToListAsync(IDataReader dataReader); diff --git a/Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs b/Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs index 7b70991de..bccc1ec38 100644 --- a/Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs @@ -1065,7 +1065,9 @@ namespace SqlSugar } public SqlSugarClient CopyNew() { - return new SqlSugarClient(UtilMethods.CopyConfig(this.Ado.Context.CurrentConnectionConfig)); + var result= new SqlSugarClient(UtilMethods.CopyConfig(this.Ado.Context.CurrentConnectionConfig)); + result.QueryFilter = this.QueryFilter; + return result; } public DateTime GetDate() {