1010using System . Text ;
1111using System . Threading ;
1212using System . Threading . Tasks ;
13+ using FreeSql . Provider . QuestDb ;
1314
1415namespace FreeSql . QuestDb . Curd
1516{
@@ -31,10 +32,11 @@ internal string InternalWhereCaseSource(string CsName, Func<string, string> then
3132
3233 internal void InternalToSqlCaseWhenEnd ( StringBuilder sb , ColumnInfo col ) => ToSqlCaseWhenEnd ( sb , col ) ;
3334
34- private int InternelExecuteAffrows ( )
35+ private int RestApiExecuteAffrows ( )
3536 {
37+ var apiFeatures = ServiceContainer . GetService < QuestResetApiFeatures > ( ) ;
3638 var sql = ToSql ( ) ;
37- var execAsync = RestAPIExtension . ExecAsync ( sql ) . GetAwaiter ( ) . GetResult ( ) ;
39+ var execAsync = apiFeatures . ExecAsync ( sql ) . GetAwaiter ( ) . GetResult ( ) ;
3840 var resultHash = new Hashtable ( ) ;
3941 try
4042 {
@@ -47,26 +49,31 @@ private int InternelExecuteAffrows()
4749 throw new Exception ( "请确认new FreeSqlBuilder().UseQuestDbRestAPI()中设置的用户名密码是否正确." ) ;
4850 }
4951 }
52+
5053 var ddl = resultHash [ "ddl" ] ? . ToString ( ) ;
5154 var updated = Convert . ToInt32 ( resultHash [ "updated" ] ) ;
5255 return ddl ? . ToLower ( ) == "ok" ? updated : 0 ;
5356 }
5457
5558 public override int ExecuteAffrows ( )
5659 {
57- //如果设置了RestAPI中Url则走HTTP
58- if ( string . IsNullOrWhiteSpace ( RestAPIExtension . BaseUrl ) )
60+ //如果设置了RestApi 则走HTTP执行Sql
61+ var apiFeatures = ServiceContainer . GetService < QuestResetApiFeatures > ( ) ;
62+ if ( apiFeatures != null && string . IsNullOrWhiteSpace ( apiFeatures . BaseAddress ) )
5963 {
6064 return base . SplitExecuteAffrows ( _batchRowsLimit > 0 ? _batchRowsLimit : 500 ,
6165 _batchParameterLimit > 0 ? _batchParameterLimit : 3000 ) ;
6266 }
63- return InternelExecuteAffrows ( ) ;
67+
68+ return RestApiExecuteAffrows ( ) ;
6469 }
6570
66- protected override List < TReturn > ExecuteUpdated < TReturn > ( IEnumerable < ColumnInfo > columns ) => base . SplitExecuteUpdated < TReturn > ( _batchRowsLimit > 0 ? _batchRowsLimit : 500 , _batchParameterLimit > 0 ? _batchParameterLimit : 3000 , columns ) ;
71+ protected override List < TReturn > ExecuteUpdated < TReturn > ( IEnumerable < ColumnInfo > columns ) =>
72+ base . SplitExecuteUpdated < TReturn > ( _batchRowsLimit > 0 ? _batchRowsLimit : 500 ,
73+ _batchParameterLimit > 0 ? _batchParameterLimit : 3000 , columns ) ;
6774
68- protected override List < TReturn > RawExecuteUpdated < TReturn > ( IEnumerable < ColumnInfo > columns )
69- {
75+ protected override List < TReturn > RawExecuteUpdated < TReturn > ( IEnumerable < ColumnInfo > columns )
76+ {
7077 var ret = new List < TReturn > ( ) ;
7178 DbParameter [ ] dbParms = null ;
7279 StringBuilder sbret = null ;
@@ -94,10 +101,11 @@ protected override List<TReturn> RawExecuteUpdated<TReturn>(IEnumerable<ColumnIn
94101
95102 Exception exception = null ;
96103 try
97- {
98- var queryType = typeof ( TReturn ) == typeof ( T1 ) ? ( _table . TypeLazy ?? _table . Type ) : null ;
99- var rettmp = _orm . Ado . Query < TReturn > ( queryType , _connection , _transaction , CommandType . Text , sql , _commandTimeout , dbParms ) ;
100- ValidateVersionAndThrow ( rettmp . Count , sql , dbParms ) ;
104+ {
105+ var queryType = typeof ( TReturn ) == typeof ( T1 ) ? ( _table . TypeLazy ?? _table . Type ) : null ;
106+ var rettmp = _orm . Ado . Query < TReturn > ( queryType , _connection , _transaction , CommandType . Text , sql ,
107+ _commandTimeout , dbParms ) ;
108+ ValidateVersionAndThrow ( rettmp . Count , sql , dbParms ) ;
101109 ret . AddRange ( rettmp ) ;
102110 }
103111 catch ( Exception ex )
@@ -178,20 +186,25 @@ protected override void ToSqlCaseWhenEnd(StringBuilder sb, ColumnInfo col)
178186#else
179187 public override Task < int > ExecuteAffrowsAsync ( CancellationToken cancellationToken = default )
180188 {
181- if ( string . IsNullOrWhiteSpace ( RestAPIExtension . BaseUrl ) )
189+ var apiFeatures = ServiceContainer . GetService < QuestResetApiFeatures > ( ) ;
190+ if ( apiFeatures != null && string . IsNullOrWhiteSpace ( apiFeatures . BaseAddress ) )
182191 {
183192 return base . SplitExecuteAffrowsAsync ( _batchRowsLimit > 0 ? _batchRowsLimit : 500 ,
184193 _batchParameterLimit > 0 ? _batchParameterLimit : 3000 , cancellationToken ) ;
185194 }
186-
187- return Task . FromResult ( InternelExecuteAffrows ( ) ) ;
195+
196+ return Task . FromResult ( RestApiExecuteAffrows ( ) ) ;
188197 }
189198
190199
191- protected override Task < List < TReturn > > ExecuteUpdatedAsync < TReturn > ( IEnumerable < ColumnInfo > columns , CancellationToken cancellationToken = default ) => base . SplitExecuteUpdatedAsync < TReturn > ( _batchRowsLimit > 0 ? _batchRowsLimit : 500 , _batchParameterLimit > 0 ? _batchParameterLimit : 3000 , columns , cancellationToken ) ;
200+ protected override Task < List < TReturn > > ExecuteUpdatedAsync < TReturn > ( IEnumerable < ColumnInfo > columns ,
201+ CancellationToken cancellationToken = default ) => base . SplitExecuteUpdatedAsync < TReturn > (
202+ _batchRowsLimit > 0 ? _batchRowsLimit : 500 , _batchParameterLimit > 0 ? _batchParameterLimit : 3000 ,
203+ columns , cancellationToken ) ;
192204
193- async protected override Task < List < TReturn > > RawExecuteUpdatedAsync < TReturn > ( IEnumerable < ColumnInfo > columns , CancellationToken cancellationToken = default )
194- {
205+ protected override async Task < List < TReturn > > RawExecuteUpdatedAsync < TReturn > ( IEnumerable < ColumnInfo > columns ,
206+ CancellationToken cancellationToken = default )
207+ {
195208 var ret = new List < TReturn > ( ) ;
196209 DbParameter [ ] dbParms = null ;
197210 StringBuilder sbret = null ;
@@ -219,10 +232,11 @@ await ToSqlFetchAsync(async sb =>
219232
220233 Exception exception = null ;
221234 try
222- {
223- var queryType = typeof ( TReturn ) == typeof ( T1 ) ? ( _table . TypeLazy ?? _table . Type ) : null ;
224- var rettmp = await _orm . Ado . QueryAsync < TReturn > ( queryType , _connection , _transaction , CommandType . Text , sql , _commandTimeout , dbParms , cancellationToken ) ;
225- ValidateVersionAndThrow ( rettmp . Count , sql , dbParms ) ;
235+ {
236+ var queryType = typeof ( TReturn ) == typeof ( T1 ) ? ( _table . TypeLazy ?? _table . Type ) : null ;
237+ var rettmp = await _orm . Ado . QueryAsync < TReturn > ( queryType , _connection , _transaction ,
238+ CommandType . Text , sql , _commandTimeout , dbParms , cancellationToken ) ;
239+ ValidateVersionAndThrow ( rettmp . Count , sql , dbParms ) ;
226240 ret . AddRange ( rettmp ) ;
227241 }
228242 catch ( Exception ex )
0 commit comments