From 552926dd9639deb91513879e42b37950e37349c9 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Sun, 2 Aug 2020 13:38:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=91=BD=E5=90=8D=20NaviteTu?= =?UTF-8?q?ple=20=E4=B8=BA=20NativeTuple?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/DbContext/DbContext.cs | 6 +- FreeSql.DbContext/DbSet/DbSetSync.cs | 152 +++++++++--------- FreeSql.DbContext/FreeSql.DbContext.xml | 50 ++++-- .../Repository/Repository/BaseRepository.cs | 9 +- .../Repository/Repository/IBaseRepository.cs | 16 ++ .../RepositoryTests.cs | 30 ++++ .../FreeSql.Tests.DbContext/UnitTest1.cs | 22 +-- FreeSql/Interface/Curd/ISelect/ISelect10.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect2.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect3.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect4.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect5.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect6.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect7.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect8.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect9.cs | 2 +- FreeSql/Interface/IAdo.cs | 96 +++++------ .../CommonProvider/AdoProvider/AdoProvider.cs | 64 ++++---- .../AdoProvider/AdoProviderAsync.cs | 64 ++++---- .../CommonProvider/InsertOrUpdateProvider.cs | 10 +- .../Internal/CommonProvider/InsertProvider.cs | 4 +- .../SelectProvider/Select10Provider.cs | 6 +- .../SelectProvider/Select1Provider.cs | 4 +- .../SelectProvider/Select2Provider.cs | 6 +- .../SelectProvider/Select3Provider.cs | 6 +- .../SelectProvider/Select4Provider.cs | 6 +- .../SelectProvider/Select5Provider.cs | 6 +- .../SelectProvider/Select6Provider.cs | 6 +- .../SelectProvider/Select7Provider.cs | 6 +- .../SelectProvider/Select8Provider.cs | 6 +- .../SelectProvider/Select9Provider.cs | 6 +- .../Model/{NaviteTuple.cs => NativeTuple.cs} | 56 +++---- FreeSql/Internal/UtilsExpressionTree.cs | 6 +- .../DamengCodeFirst.cs | 12 +- .../Dameng/OdbcDamengCodeFirst.cs | 12 +- .../KingbaseES/OdbcKingbaseESCodeFirst.cs | 10 +- .../Oracle/OdbcOracleCodeFirst.cs | 12 +- .../PostgreSQL/OdbcPostgreSQLCodeFirst.cs | 10 +- .../OracleCodeFirst.cs | 12 +- .../ShenTongCodeFirst.cs | 10 +- .../SqlServerExtensions.cs | 4 +- 41 files changed, 407 insertions(+), 336 deletions(-) rename FreeSql/Internal/Model/{NaviteTuple.cs => NativeTuple.cs} (68%) diff --git a/FreeSql.DbContext/DbContext/DbContext.cs b/FreeSql.DbContext/DbContext/DbContext.cs index 0666a4c3..be8eb704 100644 --- a/FreeSql.DbContext/DbContext/DbContext.cs +++ b/FreeSql.DbContext/DbContext/DbContext.cs @@ -78,19 +78,19 @@ namespace FreeSql protected virtual void OnModelCreating(ICodeFirst codefirst) { } #region Set - static ConcurrentDictionary> _dicGetDbSetProps = new ConcurrentDictionary>(); + static ConcurrentDictionary> _dicGetDbSetProps = new ConcurrentDictionary>(); internal void InitPropSets() { var thisType = this.GetType(); var dicval = _dicGetDbSetProps.GetOrAdd(thisType, tp => - NaviteTuple.Create( + NativeTuple.Create( tp.GetProperties(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public) .Where(a => a.PropertyType.IsGenericType && a.PropertyType == typeof(DbSet<>).MakeGenericType(a.PropertyType.GetGenericArguments()[0])).ToArray(), false)); if (dicval.Item2 == false) { - if (_dicGetDbSetProps.TryUpdate(thisType, NaviteTuple.Create(dicval.Item1, true), dicval)) + if (_dicGetDbSetProps.TryUpdate(thisType, NativeTuple.Create(dicval.Item1, true), dicval)) OnModelCreating(OrmOriginal.CodeFirst); } diff --git a/FreeSql.DbContext/DbSet/DbSetSync.cs b/FreeSql.DbContext/DbSet/DbSetSync.cs index 63762df5..b6a38362 100644 --- a/FreeSql.DbContext/DbSet/DbSetSync.cs +++ b/FreeSql.DbContext/DbSet/DbSetSync.cs @@ -1,12 +1,13 @@ using FreeSql.Extensions.EntityUtil; +using FreeSql.Internal.Model; using System; using System.Collections; -using System.Collections.Generic; using System.Collections.Concurrent; +using System.Collections.Generic; using System.Linq; +using System.Linq.Expressions; using System.Reflection; using System.Text; -using System.Linq.Expressions; namespace FreeSql { @@ -539,82 +540,85 @@ namespace FreeSql /// 开始编辑数据,然后调用方法 EndEdit 分析出添加、修改、删除 SQL 语句进行执行 /// 场景:winform 加载表数据后,一顿添加、修改、删除操作之后,最后才点击【保存】 /// 示例:https://github.com/dotnetcore/FreeSql/issues/397 + /// 注意:* 本方法只支持单表操作,不支持导航属性级联保存 /// /// - //public void BeginEdit(List data) - //{ - // if (data == null || data.Any() == false) return; - // if (_table.Primarys.Any() == false) throw new Exception($"不可进行编辑,实体没有主键:{_db.OrmOriginal.GetEntityString(_entityType, data.First())}"); - // _statesEditing.Clear(); - // _dataEditing = data; - // foreach (var item in data) - // { - // var key = _db.OrmOriginal.GetEntityKeyString(_entityType, item, false); - // if (string.IsNullOrEmpty(key)) continue; + public void BeginEdit(List data) + { + if (data == null || data.Any() == false) return; + if (_table.Primarys.Any() == false) throw new Exception($"不可进行编辑,实体没有主键:{_db.OrmOriginal.GetEntityString(_entityType, data.First())}"); + _statesEditing.Clear(); + _dataEditing = data; + foreach (var item in data) + { + var key = _db.OrmOriginal.GetEntityKeyString(_entityType, item, false); + if (string.IsNullOrEmpty(key)) continue; - // _statesEditing.AddOrUpdate(key, k => CreateEntityState(item), (k, ov) => - // { - // _db.OrmOriginal.MapEntityValue(_entityType, item, ov.Value); - // ov.Time = DateTime.Now; - // return ov; - // }); - // } - //} - ///// - ///// 完成编辑数据,进行保存动作 - ///// 该方法根据 BeginEdit 传入的状态分析出添加、修改、删除 SQL 语句 - ///// - ///// - //public int EndEdit() - //{ - // var beforeAffrows = 0; - // if (_dataEditing == null) return 0; - // var oldEnable = _db.Options.EnableAddOrUpdateNavigateList; - // _db.Options.EnableAddOrUpdateNavigateList = false; - // try - // { - // DbContextFlushCommand(); - // var addList = new List(); - // var ediList = new List(); - // foreach (var item in _dataEditing) - // { - // var key = _db.OrmOriginal.GetEntityKeyString(_entityType, item, false); - // if (_statesEditing.TryRemove(key, out var state) == false) - // { - // addList.Add(item); - // continue; - // } - // _states.AddOrUpdate(key, k => state, (k, ov) => - // { - // ov.Value = state.Value; - // ov.Time = DateTime.Now; - // return ov; - // }); - // if (_db.OrmOriginal.CompareEntityValueReturnColumns(_entityType, item, state.Value, false).Any()) - // ediList.Add(item); - // } - // beforeAffrows = _db._affrows; - // AddRange(addList); - // UpdateRange(ediList); + _statesEditing.AddOrUpdate(key, k => CreateEntityState(item), (k, ov) => + { + _db.OrmOriginal.MapEntityValue(_entityType, item, ov.Value); + ov.Time = DateTime.Now; + return ov; + }); + } + } + /// + /// 完成编辑数据,进行保存动作 + /// 该方法根据 BeginEdit 传入的数据状态分析出添加、修改、删除 SQL 语句 + /// 注意:* 本方法只支持单表操作,不支持导航属性级联保存 + /// + /// + public int EndEdit() + { + var beforeAffrows = 0; + if (_dataEditing == null) return 0; + var oldEnable = _db.Options.EnableAddOrUpdateNavigateList; + _db.Options.EnableAddOrUpdateNavigateList = false; + try + { + DbContextFlushCommand(); + var addList = new List(); + var ediList = new List>(); + foreach (var item in _dataEditing) + { + var key = _db.OrmOriginal.GetEntityKeyString(_entityType, item, false); + if (_statesEditing.TryRemove(key, out var state) == false) + { + addList.Add(item); + continue; + } + _states.AddOrUpdate(key, k => state, (k, ov) => + { + ov.Value = state.Value; + ov.Time = DateTime.Now; + return ov; + }); + var edicmp = _db.OrmOriginal.CompareEntityValueReturnColumns(_entityType, item, state.Value, false); + if (edicmp.Any()) + ediList.Add(NativeTuple.Create(item, string.Join(",", edicmp))); + } + beforeAffrows = _db._affrows; + AddRange(addList); + UpdateRange(ediList.OrderBy(a => a.Item2).Select(a => a.Item1).ToList()); - // DbContextFlushCommand(); - // var delList = _statesEditing.Values.OrderBy(a => a.Time).ToArray(); - // _db._affrows += DbContextBatchRemove(delList); //为了减的少不必要的开销,此处没有直接调用 RemoveRange - // foreach (var state in delList) - // { - // _db.OrmOriginal.ClearEntityPrimaryValueWithIdentityAndGuid(_entityType, state.Value); - // _states.TryRemove(state.Key, out var oldstate); - // } - // DbContextFlushCommand(); - // } - // finally - // { - // _dataEditing = null; - // _statesEditing.Clear(); - // _db.Options.EnableAddOrUpdateNavigateList = oldEnable; - // } - // return _db._affrows - beforeAffrows; - //} + DbContextFlushCommand(); + var delList = _statesEditing.Values.OrderBy(a => a.Time).ToArray(); + _db._affrows += DbContextBatchRemove(delList); //为了减的少不必要的开销,此处没有直接调用 RemoveRange + foreach (var state in delList) + { + _db.OrmOriginal.ClearEntityPrimaryValueWithIdentityAndGuid(_entityType, state.Value); + _states.TryRemove(state.Key, out var oldstate); + } + DbContextFlushCommand(); + } + finally + { + _dataEditing = null; + _statesEditing.Clear(); + _db.Options.EnableAddOrUpdateNavigateList = oldEnable; + } + return _db._affrows - beforeAffrows; + } #endregion } } diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 4854f49c..65c54b71 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -125,13 +125,6 @@ 清空状态数据 - - - 根据 lambda 条件删除数据 - - - - 添加 @@ -174,6 +167,23 @@ + + + 开始编辑数据,然后调用方法 EndEdit 分析出添加、修改、删除 SQL 语句进行执行 + 场景:winform 加载表数据后,一顿添加、修改、删除操作之后,最后才点击【保存】 + 示例:https://github.com/dotnetcore/FreeSql/issues/397 + 注意:* 本方法只支持单表操作,不支持导航属性级联保存 + + + + + + 完成编辑数据,进行保存动作 + 该方法根据 BeginEdit 传入的数据状态分析出添加、修改、删除 SQL 语句 + 注意:* 本方法只支持单表操作,不支持导航属性级联保存 + + + 使用 FreeSql FluentApi 方法,当 EFCore FluentApi 方法无法表示的时候使用 @@ -304,6 +314,23 @@ 实体对象 属性名 + + + 开始编辑数据,然后调用方法 EndEdit 分析出添加、修改、删除 SQL 语句进行执行 + 场景:winform 加载表数据后,一顿添加、修改、删除操作之后,最后才点击【保存】 + 示例:https://github.com/dotnetcore/FreeSql/issues/397 + 注意:* 本方法只支持单表操作,不支持导航属性级联保存 + + + + + + 完成编辑数据,进行保存动作 + 该方法根据 BeginEdit 传入的数据状态分析出添加、修改、删除 SQL 语句 + 注意:* 本方法只支持单表操作,不支持导航属性级联保存 + + + 工作单元 @@ -486,14 +513,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.DbContext/Repository/Repository/BaseRepository.cs b/FreeSql.DbContext/Repository/Repository/BaseRepository.cs index 2f78dd05..675cf0b4 100644 --- a/FreeSql.DbContext/Repository/Repository/BaseRepository.cs +++ b/FreeSql.DbContext/Repository/Repository/BaseRepository.cs @@ -119,11 +119,11 @@ namespace FreeSql return _db.SaveChanges(); } - public void Attach(TEntity data) => _db.Attach(data); - public void Attach(IEnumerable data) => _db.AttachRange(data); + public void Attach(TEntity data) => _dbset.Attach(data); + public void Attach(IEnumerable data) => _dbset.AttachRange(data); public IBaseRepository AttachOnlyPrimary(TEntity data) { - _db.AttachOnlyPrimary(data); + _dbset.AttachOnlyPrimary(data); return this; } public void FlushState() => _dbset.FlushState(); @@ -140,6 +140,9 @@ namespace FreeSql _dbset.SaveMany(entity, propertyName); _db.SaveChanges(); } + + public void BeginEdit(List data) => _dbset.BeginEdit(data); + public int EndEdit() => _dbset.EndEdit(); } public abstract partial class BaseRepository : BaseRepository, IBaseRepository diff --git a/FreeSql.DbContext/Repository/Repository/IBaseRepository.cs b/FreeSql.DbContext/Repository/Repository/IBaseRepository.cs index e172073f..c66937ee 100644 --- a/FreeSql.DbContext/Repository/Repository/IBaseRepository.cs +++ b/FreeSql.DbContext/Repository/Repository/IBaseRepository.cs @@ -79,6 +79,22 @@ namespace FreeSql int Delete(IEnumerable entitys); int Delete(Expression> predicate); + /// + /// 开始编辑数据,然后调用方法 EndEdit 分析出添加、修改、删除 SQL 语句进行执行 + /// 场景:winform 加载表数据后,一顿添加、修改、删除操作之后,最后才点击【保存】 + /// 示例:https://github.com/dotnetcore/FreeSql/issues/397 + /// 注意:* 本方法只支持单表操作,不支持导航属性级联保存 + /// + /// + void BeginEdit(List data); + /// + /// 完成编辑数据,进行保存动作 + /// 该方法根据 BeginEdit 传入的数据状态分析出添加、修改、删除 SQL 语句 + /// 注意:* 本方法只支持单表操作,不支持导航属性级联保存 + /// + /// + int EndEdit(); + #if net40 #else Task InsertAsync(TEntity entity); diff --git a/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs b/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs index d7630a0a..a65081bb 100644 --- a/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs +++ b/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs @@ -528,5 +528,35 @@ namespace FreeSql.Tests public Guid TagId { get; set; } public Tag Tag { get; set; } } + + [Fact] + public void BeginEdit() + { + g.sqlite.Delete().Where("1=1").ExecuteAffrows(); + var repo = g.sqlite.GetRepository(); + var cts = new[] { + new BeginEdit01 { Name = "1" }, + new BeginEdit01 { Name = "1_1" }, + new BeginEdit01 { Name = "1_2" }, + new BeginEdit01 { Name = "1_3" }, + new BeginEdit01 { Name = "2" }, + new BeginEdit01 { Name = "2_1" }, + new BeginEdit01 { Name = "2_2" } + }.ToList(); + repo.Insert(cts); + + repo.BeginEdit(cts); + + cts.Add(new BeginEdit01 { Name = "2_3" }); + cts[0].Name = "123123"; + cts.RemoveAt(1); + + Assert.Equal(3, repo.EndEdit()); + } + class BeginEdit01 + { + public Guid Id { get; set; } + public string Name { get; set; } + } } } diff --git a/FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs index 616ee676..8cf62928 100644 --- a/FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs @@ -68,21 +68,21 @@ namespace FreeSql.Tests using (var ctx = g.sqlite.CreateDbContext()) { - //var setTag = ctx.Set(); - //var tags = setTag.Select.Limit(10).ToList(); - //setTag.BeginEdit(tags); + var setTag = ctx.Set(); + var tags = setTag.Select.Limit(10).ToList(); + setTag.BeginEdit(tags); - //tags.Add(new Tag - //{ - // Ddd = DateTime.Now.Second, - // Name = "test_manytoMany_01_й2234234" - //}); - //tags[0].Name = "123123"; - //tags.RemoveAt(1); + tags.Add(new Tag + { + Ddd = DateTime.Now.Second, + Name = "test_manytoMany_01_й2234234" + }); + tags[0].Name = "123123"; + tags.RemoveAt(1); //tags.Clear(); - //Assert.Equal(10, setTag.EndEdit()); + Assert.Equal(3, setTag.EndEdit()); var test150_02 = ctx.Set() .Select.From((s, b) => s.InnerJoin(a => a.Id == b.Id)) diff --git a/FreeSql/Interface/Curd/ISelect/ISelect10.cs b/FreeSql/Interface/Curd/ISelect/ISelect10.cs index 52121b8a..f041b8b1 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect10.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect10.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect2.cs b/FreeSql/Interface/Curd/ISelect/ISelect2.cs index 9461c992..3bbd6b0c 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect2.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect2.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect3.cs b/FreeSql/Interface/Curd/ISelect/ISelect3.cs index e3195e00..1dc6e71e 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect3.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect3.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect4.cs b/FreeSql/Interface/Curd/ISelect/ISelect4.cs index 845ad08f..29bc56f6 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect4.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect4.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect5.cs b/FreeSql/Interface/Curd/ISelect/ISelect5.cs index 02002672..a82866c7 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect5.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect5.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect6.cs b/FreeSql/Interface/Curd/ISelect/ISelect6.cs index 756e1c38..16be4dfc 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect6.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect6.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect7.cs b/FreeSql/Interface/Curd/ISelect/ISelect7.cs index 5b115d56..be8873c9 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect7.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect7.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect8.cs b/FreeSql/Interface/Curd/ISelect/ISelect8.cs index 502eef4c..a61b4955 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect8.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect8.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect9.cs b/FreeSql/Interface/Curd/ISelect/ISelect9.cs index 043bc3c8..ff8ff51d 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect9.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect9.cs @@ -51,7 +51,7 @@ namespace FreeSql ISelect Where(Expression> exp); ISelect WhereIf(bool condition, Expression> exp); - ISelectGrouping> GroupBy(Expression> exp); + ISelectGrouping> GroupBy(Expression> exp); ISelect OrderBy(Expression> column); ISelect OrderByDescending(Expression> column); diff --git a/FreeSql/Interface/IAdo.cs b/FreeSql/Interface/IAdo.cs index 788fbcb9..ba922dc0 100644 --- a/FreeSql/Interface/IAdo.cs +++ b/FreeSql/Interface/IAdo.cs @@ -199,9 +199,9 @@ namespace FreeSql /// /// /// - NaviteTuple, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); /// /// 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new { age = 25 }) /// 提示:parms 参数还可以传 Dictionary<string, object> @@ -210,28 +210,28 @@ namespace FreeSql /// /// /// - NaviteTuple, List> Query(string cmdText, object parms = null); - NaviteTuple, List> Query(DbTransaction transaction, string cmdText, object parms = null); - NaviteTuple, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); + NativeTuple, List> Query(string cmdText, object parms = null); + NativeTuple, List> Query(DbTransaction transaction, string cmdText, object parms = null); + NativeTuple, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); - NaviteTuple, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List> Query(string cmdText, object parms = null); - NaviteTuple, List, List> Query(DbTransaction transaction, string cmdText, object parms = null); - NaviteTuple, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); - NaviteTuple, List, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List, List> Query(string cmdText, object parms = null); - NaviteTuple, List, List, List> Query(DbTransaction transaction, string cmdText, object parms = null); - NaviteTuple, List, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); - NaviteTuple, List, List, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - NaviteTuple, List, List, List, List> Query(string cmdText, object parms = null); - NaviteTuple, List, List, List, List> Query(DbTransaction transaction, string cmdText, object parms = null); - NaviteTuple, List, List, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); + NativeTuple, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List> Query(string cmdText, object parms = null); + NativeTuple, List, List> Query(DbTransaction transaction, string cmdText, object parms = null); + NativeTuple, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); + NativeTuple, List, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List, List> Query(string cmdText, object parms = null); + NativeTuple, List, List, List> Query(DbTransaction transaction, string cmdText, object parms = null); + NativeTuple, List, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); + NativeTuple, List, List, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + NativeTuple, List, List, List, List> Query(string cmdText, object parms = null); + NativeTuple, List, List, List, List> Query(DbTransaction transaction, string cmdText, object parms = null); + NativeTuple, List, List, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); #if net40 #else @@ -380,9 +380,9 @@ namespace FreeSql /// /// /// - Task, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); /// /// 执行SQL返回对象集合,Query<User, Address>("select * from user where age > ?age; select * from address", new { age = 25 }) /// 提示:parms 参数还可以传 Dictionary<string, object> @@ -391,28 +391,28 @@ namespace FreeSql /// /// /// - Task, List>> QueryAsync(string cmdText, object parms = null); - Task, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null); - Task, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); + Task, List>> QueryAsync(string cmdText, object parms = null); + Task, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null); + Task, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); - Task, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List>> QueryAsync(string cmdText, object parms = null); - Task, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null); - Task, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); - Task, List, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List, List>> QueryAsync(string cmdText, object parms = null); - Task, List, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null); - Task, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); - Task, List, List, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); - Task, List, List, List, List>> QueryAsync(string cmdText, object parms = null); - Task, List, List, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null); - Task, List, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); + Task, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List>> QueryAsync(string cmdText, object parms = null); + Task, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null); + Task, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); + Task, List, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List, List>> QueryAsync(string cmdText, object parms = null); + Task, List, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null); + Task, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); + Task, List, List, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms); + Task, List, List, List, List>> QueryAsync(string cmdText, object parms = null); + Task, List, List, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null); + Task, List, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null); #endregion #endif } diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs index 613f0e85..840faa80 100644 --- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs +++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs @@ -130,14 +130,14 @@ namespace FreeSql.Internal.CommonProvider return ret; } #region query multi - public NaviteTuple, List> Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List> Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms); - public NaviteTuple, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, transaction, cmdType, cmdText, cmdParms); - public NaviteTuple, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) + public NativeTuple, List> Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List> Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms); + public NativeTuple, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, transaction, cmdType, cmdText, cmdParms); + public NativeTuple, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) { - if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List(), new List()); + if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List(), new List()); var ret1 = new List(); var type1 = typeof(T1); string flag1 = null; @@ -189,17 +189,17 @@ namespace FreeSql.Internal.CommonProvider break; } }, cmdType, cmdText, cmdParms); - return NaviteTuple.Create(ret1, ret2); + return NativeTuple.Create(ret1, ret2); } - public NaviteTuple, List, List> Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List> Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms); - public NaviteTuple, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, transaction, cmdType, cmdText, cmdParms); - public NaviteTuple, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) + public NativeTuple, List, List> Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List> Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms); + public NativeTuple, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, transaction, cmdType, cmdText, cmdParms); + public NativeTuple, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) { - if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List(), new List(), new List()); + if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List(), new List(), new List()); var ret1 = new List(); var type1 = typeof(T1); string flag1 = null; @@ -274,17 +274,17 @@ namespace FreeSql.Internal.CommonProvider break; } }, cmdType, cmdText, cmdParms); - return NaviteTuple.Create(ret1, ret2, ret3); + return NativeTuple.Create(ret1, ret2, ret3); } - public NaviteTuple, List, List, List> Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List, List> Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms); - public NaviteTuple, List, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, transaction, cmdType, cmdText, cmdParms); - public NaviteTuple, List, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) + public NativeTuple, List, List, List> Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List, List> Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms); + public NativeTuple, List, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, transaction, cmdType, cmdText, cmdParms); + public NativeTuple, List, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) { - if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List(), new List(), new List(), new List()); + if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List(), new List(), new List(), new List()); var ret1 = new List(); var type1 = typeof(T1); string flag1 = null; @@ -382,17 +382,17 @@ namespace FreeSql.Internal.CommonProvider break; } }, cmdType, cmdText, cmdParms); - return NaviteTuple.Create(ret1, ret2, ret3, ret4); + return NativeTuple.Create(ret1, ret2, ret3, ret4); } - public NaviteTuple, List, List, List, List> Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List, List, List> Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public NaviteTuple, List, List, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms); - public NaviteTuple, List, List, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, transaction, cmdType, cmdText, cmdParms); - public NaviteTuple, List, List, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) + public NativeTuple, List, List, List, List> Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List, List, List> Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List, List, List> Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public NativeTuple, List, List, List, List> Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms); + public NativeTuple, List, List, List, List> Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, transaction, cmdType, cmdText, cmdParms); + public NativeTuple, List, List, List, List> Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) { - if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List(), new List(), new List(), new List(), new List()); + if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List(), new List(), new List(), new List(), new List()); var ret1 = new List(); var type1 = typeof(T1); string flag1 = null; @@ -513,7 +513,7 @@ namespace FreeSql.Internal.CommonProvider break; } }, cmdType, cmdText, cmdParms); - return NaviteTuple.Create(ret1, ret2, ret3, ret4, ret5); + return NativeTuple.Create(ret1, ret2, ret3, ret4, ret5); } #endregion diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs index 612ff0b2..264ac27e 100644 --- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs +++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs @@ -51,14 +51,14 @@ namespace FreeSql.Internal.CommonProvider return ret; } #region QueryAsync multi - public Task, List>> QueryAsync(string cmdText, object parms = null) => QueryAsync(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, null, cmdType, cmdText, cmdParms); - public Task, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, transaction, cmdType, cmdText, cmdParms); - async public Task, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) + public Task, List>> QueryAsync(string cmdText, object parms = null) => QueryAsync(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, null, cmdType, cmdText, cmdParms); + public Task, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, transaction, cmdType, cmdText, cmdParms); + async public Task, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) { - if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List(), new List()); + if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List(), new List()); var ret1 = new List(); var type1 = typeof(T1); string flag1 = null; @@ -111,17 +111,17 @@ namespace FreeSql.Internal.CommonProvider } return Task.FromResult(false); }, cmdType, cmdText, cmdParms); - return NaviteTuple.Create(ret1, ret2); + return NativeTuple.Create(ret1, ret2); } - public Task, List, List>> QueryAsync(string cmdText, object parms = null) => QueryAsync(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, null, cmdType, cmdText, cmdParms); - public Task, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, transaction, cmdType, cmdText, cmdParms); - async public Task, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) + public Task, List, List>> QueryAsync(string cmdText, object parms = null) => QueryAsync(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, null, cmdType, cmdText, cmdParms); + public Task, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, transaction, cmdType, cmdText, cmdParms); + async public Task, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) { - if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List(), new List(), new List()); + if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List(), new List(), new List()); var ret1 = new List(); var type1 = typeof(T1); string flag1 = null; @@ -197,17 +197,17 @@ namespace FreeSql.Internal.CommonProvider } return Task.FromResult(false); }, cmdType, cmdText, cmdParms); - return NaviteTuple.Create(ret1, ret2, ret3); + return NativeTuple.Create(ret1, ret2, ret3); } - public Task, List, List, List>> QueryAsync(string cmdText, object parms = null) => QueryAsync(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, null, cmdType, cmdText, cmdParms); - public Task, List, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, transaction, cmdType, cmdText, cmdParms); - async public Task, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) + public Task, List, List, List>> QueryAsync(string cmdText, object parms = null) => QueryAsync(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, null, cmdType, cmdText, cmdParms); + public Task, List, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, transaction, cmdType, cmdText, cmdParms); + async public Task, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) { - if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List(), new List(), new List(), new List()); + if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List(), new List(), new List(), new List()); var ret1 = new List(); var type1 = typeof(T1); string flag1 = null; @@ -306,17 +306,17 @@ namespace FreeSql.Internal.CommonProvider } return Task.FromResult(false); }, cmdType, cmdText, cmdParms); - return NaviteTuple.Create(ret1, ret2, ret3, ret4); + return NativeTuple.Create(ret1, ret2, ret3, ret4); } - public Task, List, List, List, List>> QueryAsync(string cmdText, object parms = null) => QueryAsync(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); - public Task, List, List, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, null, cmdType, cmdText, cmdParms); - public Task, List, List, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, transaction, cmdType, cmdText, cmdParms); - async public Task, List, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) + public Task, List, List, List, List>> QueryAsync(string cmdText, object parms = null) => QueryAsync(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List, List, List>> QueryAsync(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms)); + public Task, List, List, List, List>> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, null, cmdType, cmdText, cmdParms); + public Task, List, List, List, List>> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync(null, transaction, cmdType, cmdText, cmdParms); + async public Task, List, List, List, List>> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) { - if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List(), new List(), new List(), new List(), new List()); + if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List(), new List(), new List(), new List(), new List()); var ret1 = new List(); var type1 = typeof(T1); string flag1 = null; @@ -438,7 +438,7 @@ namespace FreeSql.Internal.CommonProvider } return Task.FromResult(false); }, cmdType, cmdText, cmdParms); - return NaviteTuple.Create(ret1, ret2, ret3, ret4, ret5); + return NativeTuple.Create(ret1, ret2, ret3, ret4, ret5); } #endregion diff --git a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs index c67fd47c..99d2c609 100644 --- a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs @@ -191,12 +191,12 @@ namespace FreeSql.Internal.CommonProvider /// /// /// - public NaviteTuple, List> SplitSourceByIdentityValueIsNull(List source) + public NativeTuple, List> SplitSourceByIdentityValueIsNull(List source) { - if (_SplitSourceByIdentityValueIsNullFlag == 1) return NaviteTuple.Create(source, new List()); - if (_SplitSourceByIdentityValueIsNullFlag == 2) return NaviteTuple.Create(new List(), source); - if (IdentityColumn == null) return NaviteTuple.Create(source, new List()); - var ret = NaviteTuple.Create(new List(), new List()); + if (_SplitSourceByIdentityValueIsNullFlag == 1) return NativeTuple.Create(source, new List()); + if (_SplitSourceByIdentityValueIsNullFlag == 2) return NativeTuple.Create(new List(), source); + if (IdentityColumn == null) return NativeTuple.Create(source, new List()); + var ret = NativeTuple.Create(new List(), new List()); foreach (var item in source) { if (object.Equals(_orm.GetEntityValueWithPropertyName(_table.Type, item, IdentityColumn.CsName), IdentityColumn.CsType.CreateInstanceGetDefaultValue())) diff --git a/FreeSql/Internal/CommonProvider/InsertProvider.cs b/FreeSql/Internal/CommonProvider/InsertProvider.cs index d60bfa2a..e8bb406e 100644 --- a/FreeSql/Internal/CommonProvider/InsertProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertProvider.cs @@ -571,13 +571,13 @@ namespace FreeSql.Internal.CommonProvider { var dt = new DataTable(); dt.TableName = TableRuleInvoke(); - var dtCols = new List>(); + var dtCols = new List>(); foreach (var col in _table.ColumnsByPosition) { if (col.Attribute.IsIdentity && _insertIdentity == false) continue; if (col.Attribute.IsIdentity == false && _ignore.ContainsKey(col.Attribute.Name)) continue; dt.Columns.Add(col.Attribute.Name, col.Attribute.MapType.NullableTypeOrThis()); - dtCols.Add(NaviteTuple.Create(col, col.Attribute.MapType.NullableTypeOrThis(), col.Attribute.MapType.IsNullableType())); + dtCols.Add(NativeTuple.Create(col, col.Attribute.MapType.NullableTypeOrThis(), col.Attribute.MapType.IsNullableType())); } if (dt.Columns.Count == 0) return dt; var didx = 0; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs index d754293d..a62868c4 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs @@ -43,11 +43,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs index 952770d6..1a9c1fcf 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs @@ -292,7 +292,7 @@ namespace FreeSql.Internal.CommonProvider return this; } - static NaviteTuple> GetExpressionStack(Expression exp) + static NativeTuple> GetExpressionStack(Expression exp) { Expression tmpExp = exp; ParameterExpression param = null; @@ -316,7 +316,7 @@ namespace FreeSql.Internal.CommonProvider } } if (param == null) throw new Exception($"表达式错误,它的顶级对象不是 ParameterExpression:{exp}"); - return NaviteTuple.Create(param, members.ToList()); + return NativeTuple.Create(param, members.ToList()); } static MethodInfo GetEntityValueWithPropertyNameMethod = typeof(EntityUtilExtensions).GetMethod("GetEntityValueWithPropertyName"); static ConcurrentDictionary> _dicTypeMethod = new ConcurrentDictionary>(); diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs index 2ca2fc1d..0bf4d0fc 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs @@ -27,11 +27,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs index 27e36b4c..ebded494 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs @@ -29,11 +29,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs index f7cfa25e..2824aa01 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs @@ -31,11 +31,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs index aeaf7daf..1278e64f 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs @@ -33,11 +33,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs index a4522c5e..f4b9caa5 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs @@ -35,11 +35,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs index 3b0b4979..b094c500 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs @@ -37,11 +37,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs index 821d9032..fbc2ed51 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs @@ -39,11 +39,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs index fc9e0479..021298f4 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs @@ -41,11 +41,11 @@ namespace FreeSql.Internal.CommonProvider return this.InternalAvg(column?.Body); } - ISelectGrouping> ISelect.GroupBy(Expression> exp) + ISelectGrouping> ISelect.GroupBy(Expression> exp) { - if (exp == null) return this.InternalGroupBy>(exp?.Body); + if (exp == null) return this.InternalGroupBy>(exp?.Body); for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a]; - return this.InternalGroupBy>(exp?.Body); + return this.InternalGroupBy>(exp?.Body); } TMember ISelect.Max(Expression> column) diff --git a/FreeSql/Internal/Model/NaviteTuple.cs b/FreeSql/Internal/Model/NativeTuple.cs similarity index 68% rename from FreeSql/Internal/Model/NaviteTuple.cs rename to FreeSql/Internal/Model/NativeTuple.cs index 8e9dfd46..fcc3036f 100644 --- a/FreeSql/Internal/Model/NaviteTuple.cs +++ b/FreeSql/Internal/Model/NativeTuple.cs @@ -4,48 +4,48 @@ using System.Text; namespace FreeSql.Internal.Model { - public static class NaviteTuple + public static class NativeTuple { - public static NaviteTuple Create(T1 item1, T2 item2) => new NaviteTuple(item1, item2); - public static NaviteTuple Create(T1 item1, T2 item2, T3 item3) => new NaviteTuple(item1, item2, item3); - public static NaviteTuple Create(T1 item1, T2 item2, T3 item3, T4 item4) => new NaviteTuple(item1, item2, item3, item4); - public static NaviteTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => new NaviteTuple(item1, item2, item3, item4, item5); - public static NaviteTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => new NaviteTuple(item1, item2, item3, item4, item5, item6); - public static NaviteTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => new NaviteTuple(item1, item2, item3, item4, item5, item6, item7); - public static NaviteTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => new NaviteTuple(item1, item2, item3, item4, item5, item6, item7, item8); - public static NaviteTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9) => new NaviteTuple(item1, item2, item3, item4, item5, item6, item7, item8, item9); - public static NaviteTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10) => new NaviteTuple(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10); + public static NativeTuple Create(T1 item1, T2 item2) => new NativeTuple(item1, item2); + public static NativeTuple Create(T1 item1, T2 item2, T3 item3) => new NativeTuple(item1, item2, item3); + public static NativeTuple Create(T1 item1, T2 item2, T3 item3, T4 item4) => new NativeTuple(item1, item2, item3, item4); + public static NativeTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => new NativeTuple(item1, item2, item3, item4, item5); + public static NativeTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => new NativeTuple(item1, item2, item3, item4, item5, item6); + public static NativeTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => new NativeTuple(item1, item2, item3, item4, item5, item6, item7); + public static NativeTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => new NativeTuple(item1, item2, item3, item4, item5, item6, item7, item8); + public static NativeTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9) => new NativeTuple(item1, item2, item3, item4, item5, item6, item7, item8, item9); + public static NativeTuple Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10) => new NativeTuple(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10); } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } - public NaviteTuple(T1 item1, T2 item2) + public NativeTuple(T1 item1, T2 item2) { Item1 = item1; Item2 = item2; } } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } public T3 Item3 { get; } - public NaviteTuple(T1 item1, T2 item2, T3 item3) + public NativeTuple(T1 item1, T2 item2, T3 item3) { Item1 = item1; Item2 = item2; Item3 = item3; } } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } public T3 Item3 { get; } public T4 Item4 { get; } - public NaviteTuple(T1 item1, T2 item2, T3 item3, T4 item4) + public NativeTuple(T1 item1, T2 item2, T3 item3, T4 item4) { Item1 = item1; Item2 = item2; @@ -53,14 +53,14 @@ namespace FreeSql.Internal.Model Item4 = item4; } } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } public T3 Item3 { get; } public T4 Item4 { get; } public T5 Item5 { get; } - public NaviteTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) + public NativeTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) { Item1 = item1; Item2 = item2; @@ -69,7 +69,7 @@ namespace FreeSql.Internal.Model Item5 = item5; } } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } @@ -77,7 +77,7 @@ namespace FreeSql.Internal.Model public T4 Item4 { get; } public T5 Item5 { get; } public T6 Item6 { get; } - public NaviteTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) + public NativeTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) { Item1 = item1; Item2 = item2; @@ -87,7 +87,7 @@ namespace FreeSql.Internal.Model Item6 = item6; } } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } @@ -96,7 +96,7 @@ namespace FreeSql.Internal.Model public T5 Item5 { get; } public T6 Item6 { get; } public T7 Item7 { get; } - public NaviteTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) + public NativeTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) { Item1 = item1; Item2 = item2; @@ -107,7 +107,7 @@ namespace FreeSql.Internal.Model Item7 = item7; } } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } @@ -117,7 +117,7 @@ namespace FreeSql.Internal.Model public T6 Item6 { get; } public T7 Item7 { get; } public T8 Item8 { get; } - public NaviteTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) + public NativeTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) { Item1 = item1; Item2 = item2; @@ -129,7 +129,7 @@ namespace FreeSql.Internal.Model Item8 = item8; } } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } @@ -140,7 +140,7 @@ namespace FreeSql.Internal.Model public T7 Item7 { get; } public T8 Item8 { get; } public T9 Item9 { get; } - public NaviteTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9) + public NativeTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9) { Item1 = item1; Item2 = item2; @@ -153,7 +153,7 @@ namespace FreeSql.Internal.Model Item9 = item9; } } - public class NaviteTuple + public class NativeTuple { public T1 Item1 { get; } public T2 Item2 { get; } @@ -165,7 +165,7 @@ namespace FreeSql.Internal.Model public T8 Item8 { get; } public T9 Item9 { get; } public T10 Item10 { get; } - public NaviteTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10) + public NativeTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10) { Item1 = item1; Item2 = item2; diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs index 98d6edeb..2b81e503 100644 --- a/FreeSql/Internal/UtilsExpressionTree.cs +++ b/FreeSql/Internal/UtilsExpressionTree.cs @@ -66,7 +66,7 @@ namespace FreeSql.Internal trytb.DbOldName = trytb.DbOldName?.ToUpper(); } if (tbattr != null) trytb.DisableSyncStructure = tbattr.DisableSyncStructure; - var propsLazy = new List>(); + var propsLazy = new List>(); var propsNavObjs = new List(); var propsComment = CommonUtils.GetProperyCommentBySummary(entity); var propsCommentByDescAttr = CommonUtils.GetPropertyCommentByDescriptionAttribute(entity); @@ -95,7 +95,7 @@ namespace FreeSql.Internal var getIsVirtual = getMethod?.IsVirtual == true && getMethod?.IsFinal == false;// trytb.Type.GetMethod($"get_{p.Name}")?.IsVirtual; var setIsVirtual = setMethod?.IsVirtual == true && setMethod?.IsFinal == false; if (getIsVirtual == true || setIsVirtual == true) - propsLazy.Add(NaviteTuple.Create(p, getIsVirtual, setIsVirtual, getMethod, setMethod)); + propsLazy.Add(NativeTuple.Create(p, getIsVirtual, setIsVirtual, getMethod, setMethod)); } propsNavObjs.Add(p); continue; @@ -534,7 +534,7 @@ namespace FreeSql.Internal return tbc.TryGetValue(entity, out var trytb2) ? trytb2 : trytb; } - public static void AddTableRef(CommonUtils common, TableInfo trytb, PropertyInfo pnv, bool isLazy, NaviteTuple vp, StringBuilder cscode) + public static void AddTableRef(CommonUtils common, TableInfo trytb, PropertyInfo pnv, bool isLazy, NativeTuple vp, StringBuilder cscode) { var getMethod = vp?.Item4; var setMethod = vp?.Item5; diff --git a/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs b/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs index 2e1736fd..6f34c0bd 100644 --- a/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs +++ b/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs @@ -83,7 +83,7 @@ namespace FreeSql.Dameng { userId = DamengConnectionPool.GetUserId(conn.Value.ConnectionString); } - var seqcols = new List>(); //序列:列,表,自增 + var seqcols = new List>(); //序列:列,表,自增 var seqnameDel = new List(); //要删除的序列+触发器 var sb = new StringBuilder(); @@ -134,7 +134,7 @@ namespace FreeSql.Dameng foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { @@ -245,10 +245,10 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname); //修改列名 sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" RENAME COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TO ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append("';\r\n"); if (tbcol.Attribute.IsIdentity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); } else if (tbcol.Attribute.IsIdentity != tbstructcol.is_identity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (isCommentChanged) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n"); continue; @@ -260,7 +260,7 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname); sbalter.Append("execute immediate 'UPDATE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" SET ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" = ").Append(tbcol.DbDefaultValue.Replace("'", "''")).Append("';\r\n"); sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" MODIFY ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" NOT NULL';\r\n"); } - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n"); } } @@ -323,7 +323,7 @@ and not exists(select 1 from all_constraints where index_name = a.index_name and foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs index 8fd5f373..7abc2669 100644 --- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs @@ -84,7 +84,7 @@ namespace FreeSql.Odbc.Dameng { userId = OdbcDamengConnectionPool.GetUserId(conn.Value.ConnectionString); } - var seqcols = new List>(); //序列:列,表,自增 + var seqcols = new List>(); //序列:列,表,自增 var seqnameDel = new List(); //要删除的序列+触发器 var sb = new StringBuilder(); @@ -135,7 +135,7 @@ namespace FreeSql.Odbc.Dameng foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { @@ -246,10 +246,10 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname); //修改列名 sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" RENAME COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TO ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append("';\r\n"); if (tbcol.Attribute.IsIdentity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); } else if (tbcol.Attribute.IsIdentity != tbstructcol.is_identity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (isCommentChanged) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n"); continue; @@ -261,7 +261,7 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname); sbalter.Append("execute immediate 'UPDATE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" SET ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" = ").Append(tbcol.DbDefaultValue.Replace("'", "''")).Append("';\r\n"); sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" MODIFY ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" NOT NULL';\r\n"); } - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n"); } } @@ -324,7 +324,7 @@ and not exists(select 1 from all_constraints where index_name = a.index_name and foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { diff --git a/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESCodeFirst.cs index 1c75a1e0..a174427c 100644 --- a/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESCodeFirst.cs @@ -77,7 +77,7 @@ namespace FreeSql.Odbc.KingbaseES protected override string GetComparisonDDLStatements(params TypeAndName[] objects) { var sb = new StringBuilder(); - var seqcols = new List>(); //序列 + var seqcols = new List>(); //序列 foreach (var obj in objects) { @@ -123,7 +123,7 @@ namespace FreeSql.Odbc.KingbaseES foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { @@ -242,7 +242,7 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname); } } if (tbcol.Attribute.IsIdentity != tbstructcol.is_identity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.Compare(tbstructcol.column, tbcol.Attribute.OldName, true) == 0) //修改列名 sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" RENAME COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TO ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(";\r\n"); @@ -254,7 +254,7 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname); sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ADD COLUMN ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType.Split(' ').First()).Append(";\r\n"); sbalter.Append("UPDATE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" SET ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" = ").Append(tbcol.DbDefaultValue).Append(";\r\n"); if (tbcol.Attribute.IsNullable == false) sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ALTER COLUMN ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" SET NOT NULL;\r\n"); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment)).Append(";\r\n"); } var dsuksql = _commonUtils.FormatSql(@" @@ -322,7 +322,7 @@ where sys_namespace.nspname={0} and sys_class.relname={1} and sys_constraint.con foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs index 18b7a2cd..47eb5034 100644 --- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs @@ -84,7 +84,7 @@ namespace FreeSql.Odbc.Oracle { userId = OdbcOracleConnectionPool.GetUserId(conn.Value.ConnectionString); } - var seqcols = new List>(); //序列:列,表,自增 + var seqcols = new List>(); //序列:列,表,自增 var seqnameDel = new List(); //要删除的序列+触发器 var sb = new StringBuilder(); @@ -135,7 +135,7 @@ namespace FreeSql.Odbc.Oracle foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { @@ -243,10 +243,10 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname); //修改列名 sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" RENAME COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TO ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append("';\r\n"); if (tbcol.Attribute.IsIdentity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); } else if (tbcol.Attribute.IsIdentity != tbstructcol.is_identity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (isCommentChanged) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n"); continue; @@ -258,7 +258,7 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname); sbalter.Append("execute immediate 'UPDATE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" SET ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" = ").Append(tbcol.DbDefaultValue.Replace("'", "''")).Append("';\r\n"); sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" MODIFY ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" NOT NULL';\r\n"); } - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n"); } } @@ -321,7 +321,7 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs index 471b4f54..22df7fb2 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs @@ -83,7 +83,7 @@ namespace FreeSql.Odbc.PostgreSQL protected override string GetComparisonDDLStatements(params TypeAndName[] objects) { var sb = new StringBuilder(); - var seqcols = new List>(); //序列 + var seqcols = new List>(); //序列 var is96 = true; using (var conn = _orm.Ado.MasterPool.Get(TimeSpan.FromSeconds(5))) @@ -135,7 +135,7 @@ namespace FreeSql.Odbc.PostgreSQL foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { @@ -254,7 +254,7 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname); } } if (tbcol.Attribute.IsIdentity != tbstructcol.is_identity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.Compare(tbstructcol.column, tbcol.Attribute.OldName, true) == 0) //修改列名 sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" RENAME COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TO ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(";\r\n"); @@ -266,7 +266,7 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname); sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ADD COLUMN ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType.Split(' ').First()).Append(";\r\n"); sbalter.Append("UPDATE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" SET ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" = ").Append(tbcol.DbDefaultValue).Append(";\r\n"); if (tbcol.Attribute.IsNullable == false) sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ALTER COLUMN ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" SET NOT NULL;\r\n"); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment)).Append(";\r\n"); } var dsuksql = _commonUtils.FormatSql($@" @@ -334,7 +334,7 @@ where pg_namespace.nspname={0} and pg_class.relname={1} and pg_constraint.contyp foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { diff --git a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs index 7cdeeeb0..e6a22742 100644 --- a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs +++ b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs @@ -85,7 +85,7 @@ namespace FreeSql.Oracle { userId = OracleConnectionPool.GetUserId(conn.Value.ConnectionString); } - var seqcols = new List>(); //序列:列,表,自增 + var seqcols = new List>(); //序列:列,表,自增 var seqnameDel = new List(); //要删除的序列+触发器 var sb = new StringBuilder(); @@ -136,7 +136,7 @@ namespace FreeSql.Oracle foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { @@ -244,10 +244,10 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname); //修改列名 sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" RENAME COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TO ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append("';\r\n"); if (tbcol.Attribute.IsIdentity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); } else if (tbcol.Attribute.IsIdentity != tbstructcol.is_identity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (isCommentChanged) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n"); continue; @@ -259,7 +259,7 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname); sbalter.Append("execute immediate 'UPDATE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" SET ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" = ").Append(tbcol.DbDefaultValue.Replace("'", "''")).Append("';\r\n"); sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" MODIFY ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" NOT NULL';\r\n"); } - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n"); } } @@ -322,7 +322,7 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { diff --git a/Providers/FreeSql.Provider.ShenTong/ShenTongCodeFirst.cs b/Providers/FreeSql.Provider.ShenTong/ShenTongCodeFirst.cs index 2b369a01..06ff4d52 100644 --- a/Providers/FreeSql.Provider.ShenTong/ShenTongCodeFirst.cs +++ b/Providers/FreeSql.Provider.ShenTong/ShenTongCodeFirst.cs @@ -89,7 +89,7 @@ namespace FreeSql.ShenTong protected override string GetComparisonDDLStatements(params TypeAndName[] objects) { var sb = new StringBuilder(); - var seqcols = new List>(); //序列 + var seqcols = new List>(); //序列 foreach (var obj in objects) { @@ -135,7 +135,7 @@ namespace FreeSql.ShenTong foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { @@ -254,7 +254,7 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname); } } if (tbcol.Attribute.IsIdentity != tbstructcol.is_identity) - seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.Compare(tbstructcol.column, tbcol.Attribute.OldName, true) == 0) //修改列名 sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" RENAME COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TO ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(";\r\n"); @@ -266,7 +266,7 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname); sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ADD COLUMN ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType.Split(' ').First()).Append(";\r\n"); sbalter.Append("UPDATE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" SET ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" = ").Append(tbcol.DbDefaultValue).Append(";\r\n"); if (tbcol.Attribute.IsNullable == false) sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ALTER COLUMN ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" SET NOT NULL;\r\n"); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true)); if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment)).Append(";\r\n"); } var dsuksql = _commonUtils.FormatSql(@" @@ -335,7 +335,7 @@ where sys_namespace.nspname={0} and sys_class.relname={1} and sys_constraint.con foreach (var tbcol in tb.ColumnsByPosition) { sb.Append(" \r\n ").Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(" ").Append(tbcol.Attribute.DbType).Append(","); - if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, true)); + if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NativeTuple.Create(tbcol, tbname, true)); } if (tb.Primarys.Any()) { diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs index 5cc172ad..021d09e5 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs @@ -42,11 +42,11 @@ public static partial class FreeSqlSqlServerGlobalExtensions /// public static IFreeSql SetGlobalSelectWithLock(this IFreeSql that, SqlServerLock lockType, Dictionary rule) { - var value = NaviteTuple.Create(lockType, rule); + var value = NativeTuple.Create(lockType, rule); _dicSetGlobalSelectWithLock.AddOrUpdate(that.Ado.Identifier, value, (_, __) => value); return that; } - internal static ConcurrentDictionary>> _dicSetGlobalSelectWithLock = new ConcurrentDictionary>>(); + internal static ConcurrentDictionary>> _dicSetGlobalSelectWithLock = new ConcurrentDictionary>>(); #region ExecuteSqlBulkCopy ///