mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 增加 IUpdate.ExecuteUpdated 重载方法返回指定字段;#1681
This commit is contained in:
		@@ -63,12 +63,11 @@ namespace FreeSql.QuestDb.Curd
 | 
			
		||||
            return InternelExecuteAffrows();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public override List<T1> ExecuteUpdated() => base.SplitExecuteUpdated(
 | 
			
		||||
            _batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000);
 | 
			
		||||
		protected override List<TReturn> ExecuteUpdated<TReturn>(IEnumerable<ColumnInfo> columns) => base.SplitExecuteUpdated<TReturn>(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000, columns);
 | 
			
		||||
 | 
			
		||||
        protected override List<T1> RawExecuteUpdated()
 | 
			
		||||
        {
 | 
			
		||||
            var ret = new List<T1>();
 | 
			
		||||
		protected override List<TReturn> RawExecuteUpdated<TReturn>(IEnumerable<ColumnInfo> columns)
 | 
			
		||||
		{
 | 
			
		||||
            var ret = new List<TReturn>();
 | 
			
		||||
            DbParameter[] dbParms = null;
 | 
			
		||||
            StringBuilder sbret = null;
 | 
			
		||||
            ToSqlFetch(sb =>
 | 
			
		||||
@@ -80,7 +79,7 @@ namespace FreeSql.QuestDb.Curd
 | 
			
		||||
                    sbret.Append(" RETURNING ");
 | 
			
		||||
 | 
			
		||||
                    var colidx = 0;
 | 
			
		||||
                    foreach (var col in _table.Columns.Values)
 | 
			
		||||
                    foreach (var col in columns)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (colidx > 0) sbret.Append(", ");
 | 
			
		||||
                        sbret.Append(_commonUtils.RereadColumn(col, _commonUtils.QuoteSqlName(col.Attribute.Name)))
 | 
			
		||||
@@ -96,7 +95,7 @@ namespace FreeSql.QuestDb.Curd
 | 
			
		||||
                Exception exception = null;
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    var rettmp = _orm.Ado.Query<T1>(_table.TypeLazy ?? _table.Type, _connection, _transaction,
 | 
			
		||||
                    var rettmp = _orm.Ado.Query<TReturn>(_table.TypeLazy ?? _table.Type, _connection, _transaction,
 | 
			
		||||
                        CommandType.Text, sql, _commandTimeout, dbParms);
 | 
			
		||||
                    ValidateVersionAndThrow(rettmp.Count, sql, dbParms);
 | 
			
		||||
                    ret.AddRange(rettmp);
 | 
			
		||||
@@ -187,15 +186,13 @@ namespace FreeSql.QuestDb.Curd
 | 
			
		||||
         
 | 
			
		||||
            return Task.FromResult(InternelExecuteAffrows());
 | 
			
		||||
        }
 | 
			
		||||
       
 | 
			
		||||
 | 
			
		||||
        public override Task<List<T1>> ExecuteUpdatedAsync(CancellationToken cancellationToken = default) =>
 | 
			
		||||
            base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500,
 | 
			
		||||
                _batchParameterLimit > 0 ? _batchParameterLimit : 3000, cancellationToken);
 | 
			
		||||
 | 
			
		||||
        async protected override Task<List<T1>> RawExecuteUpdatedAsync(CancellationToken cancellationToken = default)
 | 
			
		||||
        {
 | 
			
		||||
            var ret = new List<T1>();
 | 
			
		||||
		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);
 | 
			
		||||
 | 
			
		||||
		async protected override Task<List<TReturn>> RawExecuteUpdatedAsync<TReturn>(IEnumerable<ColumnInfo> columns, CancellationToken cancellationToken = default)
 | 
			
		||||
		{
 | 
			
		||||
            var ret = new List<TReturn>();
 | 
			
		||||
            DbParameter[] dbParms = null;
 | 
			
		||||
            StringBuilder sbret = null;
 | 
			
		||||
            await ToSqlFetchAsync(async sb =>
 | 
			
		||||
@@ -207,7 +204,7 @@ namespace FreeSql.QuestDb.Curd
 | 
			
		||||
                    sbret.Append(" RETURNING ");
 | 
			
		||||
 | 
			
		||||
                    var colidx = 0;
 | 
			
		||||
                    foreach (var col in _table.Columns.Values)
 | 
			
		||||
                    foreach (var col in columns)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (colidx > 0) sbret.Append(", ");
 | 
			
		||||
                        sbret.Append(_commonUtils.RereadColumn(col, _commonUtils.QuoteSqlName(col.Attribute.Name)))
 | 
			
		||||
@@ -223,7 +220,7 @@ namespace FreeSql.QuestDb.Curd
 | 
			
		||||
                Exception exception = null;
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    var rettmp = await _orm.Ado.QueryAsync<T1>(_table.TypeLazy ?? _table.Type, _connection,
 | 
			
		||||
                    var rettmp = await _orm.Ado.QueryAsync<TReturn>(_table.TypeLazy ?? _table.Type, _connection,
 | 
			
		||||
                        _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken);
 | 
			
		||||
                    ValidateVersionAndThrow(rettmp.Count, sql, dbParms);
 | 
			
		||||
                    ret.AddRange(rettmp);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user