11using FreeSql . Internal ;
22using FreeSql . Internal . Model ;
3+ using FreeSql . Provider . QuestDb ;
4+ using FreeSql . Provider . QuestDb . Models ;
35using Newtonsoft . Json ;
46using System ;
57using System . Collections ;
68using System . Collections . Generic ;
79using System . Data ;
810using System . Data . Common ;
911using System . Linq ;
12+ using System . Net . Http ;
1013using System . Text ;
1114using System . Threading ;
1215using System . Threading . Tasks ;
13- using FreeSql . Provider . QuestDb ;
1416
1517namespace FreeSql . QuestDb . Curd
1618{
@@ -33,16 +35,16 @@ public QuestDbInsert(IFreeSql orm, CommonUtils commonUtils, CommonExpression com
3335 internal void InternalClearData ( ) => ClearData ( ) ;
3436 internal string InternalTableRuleInvoke ( ) => TableRuleInvoke ( ) ;
3537
36- private int RestApiExecuteAffrows ( )
38+ private async Task < int > RestApiExecuteAffrowsAsync ( )
3739 {
3840 //如果设置了RestAPI的Url则走HTTP
39- var apiFeatures = ServiceContainer . GetService < QuestResetApiFeatures > ( ) ;
41+ var apiFeatures = ServiceContainer . GetService < QuestResetApiFeatures > ( ) ;
4042 var sql = ToSql ( ) ;
41- var execAsync = apiFeatures . ExecAsync ( sql ) . GetAwaiter ( ) . GetResult ( ) ;
42- var resultHash = new Hashtable ( ) ;
43+ var execAsync = await apiFeatures . ExecAsync ( sql ) ;
44+ var result = new RestApiExecResponseJsonBody ( ) ;
4345 try
4446 {
45- resultHash = JsonConvert . DeserializeObject < Hashtable > ( execAsync ) ;
47+ result = JsonConvert . DeserializeObject < RestApiExecResponseJsonBody > ( execAsync ) ;
4648 }
4749 catch
4850 {
@@ -52,20 +54,19 @@ private int RestApiExecuteAffrows()
5254 }
5355 }
5456
55- var ddl = resultHash [ "ddl" ] ? . ToString ( ) ;
56- return ddl ? . ToLower ( ) == "ok" ? 1 : 0 ;
57+ return result . IsSuccessful ? 1 : 0 ;
5758 }
5859
5960 public override int ExecuteAffrows ( )
6061 {
6162 var apiFeatures = ServiceContainer . GetService < QuestResetApiFeatures > ( ) ;
62- if ( apiFeatures != null && string . IsNullOrWhiteSpace ( apiFeatures . BaseAddress ) )
63+ if ( apiFeatures == null || string . IsNullOrWhiteSpace ( apiFeatures . BaseAddress ) )
6364 {
6465 return base . SplitExecuteAffrows ( _batchValuesLimit > 0 ? _batchValuesLimit : 5000 ,
6566 _batchParameterLimit > 0 ? _batchParameterLimit : 3000 ) ;
6667 }
6768
68- return RestApiExecuteAffrows ( ) ;
69+ return RestApiExecuteAffrowsAsync ( ) . ConfigureAwait ( false ) . GetAwaiter ( ) . GetResult ( ) ;
6970 }
7071
7172 public override long ExecuteIdentity ( ) => base . SplitExecuteIdentity (
@@ -176,13 +177,13 @@ protected override List<T1> RawExecuteInserted()
176177 public override Task < int > ExecuteAffrowsAsync ( CancellationToken cancellationToken = default )
177178 {
178179 var apiFeatures = ServiceContainer . GetService < QuestResetApiFeatures > ( ) ;
179- if ( apiFeatures != null && string . IsNullOrWhiteSpace ( apiFeatures . BaseAddress ) )
180+ if ( apiFeatures == null || string . IsNullOrWhiteSpace ( apiFeatures . BaseAddress ) )
180181 {
181182 return base . SplitExecuteAffrowsAsync ( _batchValuesLimit > 0 ? _batchValuesLimit : 5000 ,
182183 _batchParameterLimit > 0 ? _batchParameterLimit : 3000 , cancellationToken ) ;
183184 }
184185
185- return Task . FromResult ( RestApiExecuteAffrows ( ) ) ;
186+ return RestApiExecuteAffrowsAsync ( ) ;
186187 }
187188
188189
0 commit comments