- 增加 IUpdate.ExecuteUpdated 重载方法返回指定字段;#1681

This commit is contained in:
2881099
2023-12-10 23:19:32 +08:00
parent 1f0fccf977
commit 7ed542d859
29 changed files with 1581 additions and 1681 deletions

View File

@ -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);