diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs index 9c35ea6a2..d95628267 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs @@ -193,11 +193,15 @@ namespace FreeSql.Tests.SqlServer g.sqlserver.Insert().AppendData(new Topic()).ExecuteAffrows(); var items = g.sqlserver.Select().Limit(2).ToList(); - g.sqlserver.Update(items).SetRaw("Title='test'").ExecuteUpdated(); + Assert.Equal("test", g.sqlserver.Update(items).SetRaw("Title='test'").ExecuteUpdated().FirstOrDefault().Title); + Assert.Equal("test1", g.sqlserver.Update(items).SetRaw("Title='test1'").ExecuteUpdated(a => new { a.Title }).FirstOrDefault().Title); + Assert.Equal("test2", g.sqlserver.Update(items).SetRaw("Title='test2'").ExecuteUpdated(a => a.Title).FirstOrDefault()); - items = g.sqlserver.Select().Limit(2).ToList(); - var result = g.sqlserver.Update(items).SetRaw("Title='test'").ExecuteUpdatedAsync().Result; - } + items = g.sqlserver.Select().Limit(2).ToList(); + Assert.Equal("test", g.sqlserver.Update(items).SetRaw("Title='test'").ExecuteUpdatedAsync().Result.FirstOrDefault().Title); + Assert.Equal("test1", g.sqlserver.Update(items).SetRaw("Title='test1'").ExecuteUpdatedAsync(a => new { a.Title }).Result.FirstOrDefault().Title); + Assert.Equal("test2", g.sqlserver.Update(items).SetRaw("Title='test2'").ExecuteUpdatedAsync(a => a.Title).Result.FirstOrDefault()); + } [Fact] public void AsTable() diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index c423ca765..b58085777 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -3570,6 +3570,83 @@ + + + 在【主库】执行,ExecuteScalar("select 1 from user where age > @age", new { age = 25 }) + 提示:parms 参数还可以传 Dictionary<string, object> + + + + + + + + 查询,ExecuteArray("select * from user where age > @age", new { age = 25 }) + 提示:parms 参数还可以传 Dictionary<string, object> + + + + + + + + 查询 + + + + + + + + 查询,ExecuteDataSet("select * from user where age > @age; select 2", new { age = 25 }) + 提示:parms 参数还可以传 Dictionary<string, object> + + + + + + + + 查询 + + + + + + + + 查询,ExecuteDataTable("select * from user where age > @age", new { age = 25 }) + 提示:parms 参数还可以传 Dictionary<string, object> + + + + + + + + 在【主库】执行 + + + + + + + + 在【主库】执行,ExecuteNonQuery("delete from user where age > @age", new { age = 25 }) + 提示:parms 参数还可以传 Dictionary<string, object> + + + + + + + + 在【主库】执行 + + + + + 在【主库】执行,ExecuteScalar("select 1 from user where age > @age", new { age = 25 }) @@ -5808,6 +5885,28 @@ 请使用 fsql.InsertDict(dict) 方法插入字典数据 + + + 动态构建Class Type + + + + + + 根据字典,创建 table 对应的实体对象 + + + + + + + + 根据实体对象,创建 table 对应的字典 + + + + + C#: that >= between && that <= and diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs index 7b7757242..ddb9bc2d6 100644 --- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs @@ -479,10 +479,10 @@ namespace FreeSql.Internal.CommonProvider public List ExecuteUpdated() => ExecuteUpdated(_table.ColumnsByPosition); public List ExecuteUpdated(Expression> returnColumns) - { - var cols = new List(); - _commonExpression.ExpressionSelectColumn_MemberAccess(null, null, cols, SelectTableInfoType.From, returnColumns?.Body, true, null); - return ExecuteUpdated(cols.Select(a => a.Column)); + { + var cols = _commonExpression.ExpressionSelectColumns_MemberAccess_New_NewArrayInit(null, null, returnColumns?.Body, false, null) + .Distinct().Select(a => _table.ColumnsByCs.TryGetValue(a, out var c) ? c : null).Where(a => a != null).ToArray(); + return ExecuteUpdated(cols); } public IUpdate IgnoreColumns(Expression> columns) => IgnoreColumns(_commonExpression.ExpressionSelectColumns_MemberAccess_New_NewArrayInit(null, null, columns?.Body, false, null)); diff --git a/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs b/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs index f2e67a924..6f07d10ce 100644 --- a/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs +++ b/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs @@ -90,7 +90,7 @@ namespace FreeSql.Internal.CommonProvider ClearData(); } - async protected virtual Task SplitExecuteAffrowsAsync(int valuesLimit, int parameterLimit, CancellationToken cancellationToken = default) + async protected Task SplitExecuteAffrowsAsync(int valuesLimit, int parameterLimit, CancellationToken cancellationToken = default) { var ret = 0; await SplitExecuteAsync(valuesLimit, parameterLimit, "SplitExecuteAffrowsAsync", async () => @@ -98,7 +98,7 @@ namespace FreeSql.Internal.CommonProvider ); return ret; } - async protected virtual Task> SplitExecuteUpdatedAsync(int valuesLimit, int parameterLimit, IEnumerable columns, CancellationToken cancellationToken = default) + async protected Task> SplitExecuteUpdatedAsync(int valuesLimit, int parameterLimit, IEnumerable columns, CancellationToken cancellationToken = default) { var ret = new List(); await SplitExecuteAsync(valuesLimit, parameterLimit, "SplitExecuteUpdatedAsync", async () => @@ -146,9 +146,9 @@ namespace FreeSql.Internal.CommonProvider public Task> ExecuteUpdatedAsync(CancellationToken cancellationToken = default) => ExecuteUpdatedAsync(_table.ColumnsByPosition, cancellationToken); public Task> ExecuteUpdatedAsync(Expression> returnColumns, CancellationToken cancellationToken = default) { - var cols = new List(); - _commonExpression.ExpressionSelectColumn_MemberAccess(null, null, cols, SelectTableInfoType.From, returnColumns?.Body, true, null); - return ExecuteUpdatedAsync(cols.Select(a => a.Column), cancellationToken); + var cols = _commonExpression.ExpressionSelectColumns_MemberAccess_New_NewArrayInit(null, null, returnColumns?.Body, false, null) + .Distinct().Select(a => _table.ColumnsByCs.TryGetValue(a, out var c) ? c : null).Where(a => a != null).ToArray(); + return ExecuteUpdatedAsync(cols, cancellationToken); } #endif } diff --git a/Providers/FreeSql.Provider.Custom/MySql/Curd/CustomMySqlUpdate.cs b/Providers/FreeSql.Provider.Custom/MySql/Curd/CustomMySqlUpdate.cs index c9fc717e3..65929f1c0 100644 --- a/Providers/FreeSql.Provider.Custom/MySql/Curd/CustomMySqlUpdate.cs +++ b/Providers/FreeSql.Provider.Custom/MySql/Curd/CustomMySqlUpdate.cs @@ -58,7 +58,8 @@ namespace FreeSql.Custom.MySql Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -146,9 +147,10 @@ namespace FreeSql.Custom.MySql Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) diff --git a/Providers/FreeSql.Provider.Custom/PostgreSQL/Curd/CustomPostgreSQLUpdate.cs b/Providers/FreeSql.Provider.Custom/PostgreSQL/Curd/CustomPostgreSQLUpdate.cs index 0a7bf74d4..6f7180e90 100644 --- a/Providers/FreeSql.Provider.Custom/PostgreSQL/Curd/CustomPostgreSQLUpdate.cs +++ b/Providers/FreeSql.Provider.Custom/PostgreSQL/Curd/CustomPostgreSQLUpdate.cs @@ -59,7 +59,8 @@ namespace FreeSql.Custom.PostgreSQL Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -163,9 +164,10 @@ namespace FreeSql.Custom.PostgreSQL Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) diff --git a/Providers/FreeSql.Provider.Custom/SqlServer/Curd/CustomSqlServerUpdate.cs b/Providers/FreeSql.Provider.Custom/SqlServer/Curd/CustomSqlServerUpdate.cs index bc261bdef..dc02dfcae 100644 --- a/Providers/FreeSql.Provider.Custom/SqlServer/Curd/CustomSqlServerUpdate.cs +++ b/Providers/FreeSql.Provider.Custom/SqlServer/Curd/CustomSqlServerUpdate.cs @@ -57,7 +57,8 @@ namespace FreeSql.Custom.SqlServer Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -149,9 +150,10 @@ namespace FreeSql.Custom.SqlServer Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) diff --git a/Providers/FreeSql.Provider.Firebird/Curd/FirebirdUpdate.cs b/Providers/FreeSql.Provider.Firebird/Curd/FirebirdUpdate.cs index ee213a83b..235617f86 100644 --- a/Providers/FreeSql.Provider.Firebird/Curd/FirebirdUpdate.cs +++ b/Providers/FreeSql.Provider.Firebird/Curd/FirebirdUpdate.cs @@ -50,9 +50,10 @@ namespace FreeSql.Firebird.Curd Exception exception = null; try - { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) @@ -139,9 +140,10 @@ namespace FreeSql.Firebird.Curd Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) diff --git a/Providers/FreeSql.Provider.KingbaseES/Curd/KingbaseESUpdate.cs b/Providers/FreeSql.Provider.KingbaseES/Curd/KingbaseESUpdate.cs index a8f00663d..448bba1b6 100644 --- a/Providers/FreeSql.Provider.KingbaseES/Curd/KingbaseESUpdate.cs +++ b/Providers/FreeSql.Provider.KingbaseES/Curd/KingbaseESUpdate.cs @@ -59,7 +59,8 @@ namespace FreeSql.KingbaseES Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -164,7 +165,8 @@ namespace FreeSql.KingbaseES Exception exception = null; try { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs index 92c00b5e2..cee1e9ef3 100644 --- a/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs +++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs @@ -57,9 +57,10 @@ namespace FreeSql.MySql.Curd Exception exception = null; try - { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) @@ -146,9 +147,10 @@ namespace FreeSql.MySql.Curd Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) diff --git a/Providers/FreeSql.Provider.Odbc/KingbaseES/Curd/OdbcKingbaseESUpdate.cs b/Providers/FreeSql.Provider.Odbc/KingbaseES/Curd/OdbcKingbaseESUpdate.cs index fb2caaaed..7bb71ddfa 100644 --- a/Providers/FreeSql.Provider.Odbc/KingbaseES/Curd/OdbcKingbaseESUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/KingbaseES/Curd/OdbcKingbaseESUpdate.cs @@ -59,7 +59,8 @@ namespace FreeSql.Odbc.KingbaseES Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -164,7 +165,8 @@ namespace FreeSql.Odbc.KingbaseES Exception exception = null; try { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs index 9277d9b66..a34e97dc4 100644 --- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs @@ -58,7 +58,8 @@ namespace FreeSql.Odbc.MySql Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -147,7 +148,8 @@ namespace FreeSql.Odbc.MySql Exception exception = null; try { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs index 8ce1b17d3..77bf26b50 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs @@ -59,7 +59,8 @@ namespace FreeSql.Odbc.PostgreSQL Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -164,7 +165,8 @@ namespace FreeSql.Odbc.PostgreSQL Exception exception = null; try { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs index bbf666433..c0a07c188 100644 --- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs @@ -57,7 +57,8 @@ namespace FreeSql.Odbc.SqlServer Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -150,7 +151,8 @@ namespace FreeSql.Odbc.SqlServer Exception exception = null; try { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs index 0878ca30b..06f686a53 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs @@ -58,9 +58,10 @@ namespace FreeSql.PostgreSQL.Curd Exception exception = null; try - { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) @@ -163,9 +164,10 @@ namespace FreeSql.PostgreSQL.Curd Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) diff --git a/Providers/FreeSql.Provider.QuestDb/Curd/QuestDbUpdate.cs b/Providers/FreeSql.Provider.QuestDb/Curd/QuestDbUpdate.cs index 50906b504..3dae955fc 100644 --- a/Providers/FreeSql.Provider.QuestDb/Curd/QuestDbUpdate.cs +++ b/Providers/FreeSql.Provider.QuestDb/Curd/QuestDbUpdate.cs @@ -94,10 +94,10 @@ namespace FreeSql.QuestDb.Curd Exception exception = null; try - { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, - CommandType.Text, sql, _commandTimeout, dbParms); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) @@ -219,10 +219,10 @@ namespace FreeSql.QuestDb.Curd Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, - _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) diff --git a/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongUpdate.cs b/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongUpdate.cs index 8f7c26189..02287eb85 100644 --- a/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongUpdate.cs +++ b/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongUpdate.cs @@ -60,7 +60,8 @@ namespace FreeSql.ShenTong.Curd Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -165,7 +166,8 @@ namespace FreeSql.ShenTong.Curd Exception exception = null; try { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs index 1c2b7abf2..1dd7a5e0a 100644 --- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs +++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs @@ -57,7 +57,8 @@ namespace FreeSql.SqlServer.Curd Exception exception = null; try { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } @@ -149,9 +150,10 @@ namespace FreeSql.SqlServer.Curd Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) diff --git a/Providers/FreeSql.Provider.Xugu/Curd/XuguUpdate.cs b/Providers/FreeSql.Provider.Xugu/Curd/XuguUpdate.cs index a7f74bcd4..8d851cc4a 100644 --- a/Providers/FreeSql.Provider.Xugu/Curd/XuguUpdate.cs +++ b/Providers/FreeSql.Provider.Xugu/Curd/XuguUpdate.cs @@ -58,9 +58,10 @@ namespace FreeSql.Xugu.Curd Exception exception = null; try - { - var rettmp = _orm.Ado.Query(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); - ValidateVersionAndThrow(rettmp.Count, sql, dbParms); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = _orm.Ado.Query(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms); + ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); } catch (Exception ex) @@ -149,8 +150,9 @@ namespace FreeSql.Xugu.Curd Exception exception = null; try - { - var rettmp = await _orm.Ado.QueryAsync(_table.TypeLazy ?? _table.Type, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); + { + var queryType = typeof(TReturn) == typeof(T1) ? (_table.TypeLazy ?? _table.Type) : null; + var rettmp = await _orm.Ado.QueryAsync(queryType, _connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken); ValidateVersionAndThrow(rettmp.Count, sql, dbParms); ret.AddRange(rettmp); }