mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	修正命名 NaviteTuple 为 NativeTuple
This commit is contained in:
		@@ -130,14 +130,14 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return ret;
 | 
			
		||||
        }
 | 
			
		||||
        #region query multi
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>> Query<T1, T2>(string cmdText, object parms = null) => Query<T1, T2>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>> Query<T1, T2>(DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>> Query<T1, T2>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>> Query<T1, T2>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>> Query<T1, T2>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>> Query<T1, T2>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>> Query<T1, T2>(string cmdText, object parms = null) => Query<T1, T2>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>> Query<T1, T2>(DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>> Query<T1, T2>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>> Query<T1, T2>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>> Query<T1, T2>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>> Query<T1, T2>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List<T1>(), new List<T2>());
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List<T1>(), new List<T2>());
 | 
			
		||||
            var ret1 = new List<T1>();
 | 
			
		||||
            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<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(string cmdText, object parms = null) => Query<T1, T2, T3>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(string cmdText, object parms = null) => Query<T1, T2, T3>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>> Query<T1, T2, T3>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List<T1>(), new List<T2>(), new List<T3>());
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List<T1>(), new List<T2>(), new List<T3>());
 | 
			
		||||
            var ret1 = new List<T1>();
 | 
			
		||||
            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<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(string cmdText, object parms = null) => Query<T1, T2, T3, T4>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3, T4>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3, T4>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3, T4>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3, T4>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(string cmdText, object parms = null) => Query<T1, T2, T3, T4>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3, T4>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3, T4>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3, T4>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3, T4>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>> Query<T1, T2, T3, T4>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List<T1>(), new List<T2>(), new List<T3>(), new List<T4>());
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List<T1>(), new List<T2>(), new List<T3>(), new List<T4>());
 | 
			
		||||
            var ret1 = new List<T1>();
 | 
			
		||||
            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<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(string cmdText, object parms = null) => Query<T1, T2, T3, T4, T5>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3, T4, T5>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3, T4, T5>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3, T4, T5>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3, T4, T5>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(string cmdText, object parms = null) => Query<T1, T2, T3, T4, T5>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3, T4, T5>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T1, T2, T3, T4, T5>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3, T4, T5>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query<T1, T2, T3, T4, T5>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>> Query<T1, T2, T3, T4, T5>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List<T1>(), new List<T2>(), new List<T3>(), new List<T4>(), new List<T5>());
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List<T1>(), new List<T2>(), new List<T3>(), new List<T4>(), new List<T5>());
 | 
			
		||||
            var ret1 = new List<T1>();
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -51,14 +51,14 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return ret;
 | 
			
		||||
        }
 | 
			
		||||
        #region QueryAsync multi
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(string cmdText, object parms = null) => QueryAsync<T1, T2>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        async public Task<NaviteTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(string cmdText, object parms = null) => QueryAsync<T1, T2>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        async public Task<NativeTuple<List<T1>, List<T2>>> QueryAsync<T1, T2>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List<T1>(), new List<T2>());
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List<T1>(), new List<T2>());
 | 
			
		||||
            var ret1 = new List<T1>();
 | 
			
		||||
            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<NaviteTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(string cmdText, object parms = null) => QueryAsync<T1, T2, T3>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        async public Task<NaviteTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(string cmdText, object parms = null) => QueryAsync<T1, T2, T3>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        async public Task<NativeTuple<List<T1>, List<T2>, List<T3>>> QueryAsync<T1, T2, T3>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List<T1>(), new List<T2>(), new List<T3>());
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List<T1>(), new List<T2>(), new List<T3>());
 | 
			
		||||
            var ret1 = new List<T1>();
 | 
			
		||||
            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<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3, T4>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3, T4>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        async public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3, T4>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3, T4>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        async public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>>> QueryAsync<T1, T2, T3, T4>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List<T1>(), new List<T2>(), new List<T3>(), new List<T4>());
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List<T1>(), new List<T2>(), new List<T3>(), new List<T4>());
 | 
			
		||||
            var ret1 = new List<T1>();
 | 
			
		||||
            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<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4, T5>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4, T5>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4, T5>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3, T4, T5>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3, T4, T5>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        async public Task<NaviteTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4, T5>(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4, T5>(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T1, T2, T3, T4, T5>(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3, T4, T5>(null, null, cmdType, cmdText, cmdParms);
 | 
			
		||||
        public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => QueryAsync<T1, T2, T3, T4, T5>(null, transaction, cmdType, cmdText, cmdParms);
 | 
			
		||||
        async public Task<NativeTuple<List<T1>, List<T2>, List<T3>, List<T4>, List<T5>>> QueryAsync<T1, T2, T3, T4, T5>(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NaviteTuple.Create(new List<T1>(), new List<T2>(), new List<T3>(), new List<T4>(), new List<T5>());
 | 
			
		||||
            if (string.IsNullOrEmpty(cmdText)) return NativeTuple.Create(new List<T1>(), new List<T2>(), new List<T3>(), new List<T4>(), new List<T5>());
 | 
			
		||||
            var ret1 = new List<T1>();
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -191,12 +191,12 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="source"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        public NaviteTuple<List<T1>, List<T1>> SplitSourceByIdentityValueIsNull(List<T1> source)
 | 
			
		||||
        public NativeTuple<List<T1>, List<T1>> SplitSourceByIdentityValueIsNull(List<T1> source)
 | 
			
		||||
        {
 | 
			
		||||
            if (_SplitSourceByIdentityValueIsNullFlag == 1) return NaviteTuple.Create(source, new List<T1>());
 | 
			
		||||
            if (_SplitSourceByIdentityValueIsNullFlag == 2) return NaviteTuple.Create(new List<T1>(), source);
 | 
			
		||||
            if (IdentityColumn == null) return NaviteTuple.Create(source, new List<T1>());
 | 
			
		||||
            var ret = NaviteTuple.Create(new List<T1>(), new List<T1>());
 | 
			
		||||
            if (_SplitSourceByIdentityValueIsNullFlag == 1) return NativeTuple.Create(source, new List<T1>());
 | 
			
		||||
            if (_SplitSourceByIdentityValueIsNullFlag == 2) return NativeTuple.Create(new List<T1>(), source);
 | 
			
		||||
            if (IdentityColumn == null) return NativeTuple.Create(source, new List<T1>());
 | 
			
		||||
            var ret = NativeTuple.Create(new List<T1>(), new List<T1>());
 | 
			
		||||
            foreach (var item in source)
 | 
			
		||||
            {
 | 
			
		||||
                if (object.Equals(_orm.GetEntityValueWithPropertyName(_table.Type, item, IdentityColumn.CsName), IdentityColumn.CsType.CreateInstanceGetDefaultValue()))
 | 
			
		||||
 
 | 
			
		||||
@@ -571,13 +571,13 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
        {
 | 
			
		||||
            var dt = new DataTable();
 | 
			
		||||
            dt.TableName = TableRuleInvoke();
 | 
			
		||||
            var dtCols = new List<NaviteTuple<ColumnInfo, Type, bool>>();
 | 
			
		||||
            var dtCols = new List<NativeTuple<ColumnInfo, Type, bool>>();
 | 
			
		||||
            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;
 | 
			
		||||
 
 | 
			
		||||
@@ -43,11 +43,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.Max<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -292,7 +292,7 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        static NaviteTuple<ParameterExpression, List<MemberExpression>> GetExpressionStack(Expression exp)
 | 
			
		||||
        static NativeTuple<ParameterExpression, List<MemberExpression>> 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<Type, ConcurrentDictionary<string, MethodInfo>> _dicTypeMethod = new ConcurrentDictionary<Type, ConcurrentDictionary<string, MethodInfo>>();
 | 
			
		||||
 
 | 
			
		||||
@@ -27,11 +27,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2>> ISelect<T1, T2>.GroupBy<TKey>(Expression<Func<T1, T2, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2>> ISelect<T1, T2>.GroupBy<TKey>(Expression<Func<T1, T2, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2>.Max<TMember>(Expression<Func<T1, T2, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -29,11 +29,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2, T3>> ISelect<T1, T2, T3>.GroupBy<TKey>(Expression<Func<T1, T2, T3, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2, T3>> ISelect<T1, T2, T3>.GroupBy<TKey>(Expression<Func<T1, T2, T3, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2, T3>.Max<TMember>(Expression<Func<T1, T2, T3, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -31,11 +31,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2, T3, T4>> ISelect<T1, T2, T3, T4>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2, T3, T4>> ISelect<T1, T2, T3, T4>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2, T3, T4>.Max<TMember>(Expression<Func<T1, T2, T3, T4, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -33,11 +33,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2, T3, T4, T5>> ISelect<T1, T2, T3, T4, T5>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2, T3, T4, T5>> ISelect<T1, T2, T3, T4, T5>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2, T3, T4, T5>.Max<TMember>(Expression<Func<T1, T2, T3, T4, T5, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -35,11 +35,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6>> ISelect<T1, T2, T3, T4, T5, T6>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2, T3, T4, T5, T6>> ISelect<T1, T2, T3, T4, T5, T6>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2, T3, T4, T5, T6>.Max<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -37,11 +37,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7>> ISelect<T1, T2, T3, T4, T5, T6, T7>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7>> ISelect<T1, T2, T3, T4, T5, T6, T7>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2, T3, T4, T5, T6, T7>.Max<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -39,11 +39,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.Max<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -41,11 +41,11 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            return this.InternalAvg(column?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ISelectGrouping<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TKey>> exp)
 | 
			
		||||
        ISelectGrouping<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.GroupBy<TKey>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TKey>> exp)
 | 
			
		||||
        {
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>>(exp?.Body);
 | 
			
		||||
            if (exp == null) return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>>(exp?.Body);
 | 
			
		||||
            for (var a = 0; a < exp.Parameters.Count; a++) _tables[a].Parameter = exp.Parameters[a];
 | 
			
		||||
            return this.InternalGroupBy<TKey, NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>>(exp?.Body);
 | 
			
		||||
            return this.InternalGroupBy<TKey, NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>>(exp?.Body);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        TMember ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.Max<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TMember>> column)
 | 
			
		||||
 
 | 
			
		||||
@@ -4,48 +4,48 @@ using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace FreeSql.Internal.Model
 | 
			
		||||
{
 | 
			
		||||
    public static class NaviteTuple
 | 
			
		||||
    public static class NativeTuple
 | 
			
		||||
    {
 | 
			
		||||
        public static NaviteTuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2) => new NaviteTuple<T1, T2>(item1, item2);
 | 
			
		||||
        public static NaviteTuple<T1, T2, T3> Create<T1, T2, T3>(T1 item1, T2 item2, T3 item3) => new NaviteTuple<T1, T2, T3>(item1, item2, item3);
 | 
			
		||||
        public static NaviteTuple<T1, T2, T3, T4> Create<T1, T2, T3, T4>(T1 item1, T2 item2, T3 item3, T4 item4) => new NaviteTuple<T1, T2, T3, T4>(item1, item2, item3, item4);
 | 
			
		||||
        public static NaviteTuple<T1, T2, T3, T4, T5> Create<T1, T2, T3, T4, T5>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => new NaviteTuple<T1, T2, T3, T4, T5>(item1, item2, item3, item4, item5);
 | 
			
		||||
        public static NaviteTuple<T1, T2, T3, T4, T5, T6> Create<T1, T2, T3, T4, T5, T6>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => new NaviteTuple<T1, T2, T3, T4, T5, T6>(item1, item2, item3, item4, item5, item6);
 | 
			
		||||
        public static NaviteTuple<T1, T2, T3, T4, T5, T6, T7> Create<T1, T2, T3, T4, T5, T6, T7>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => new NaviteTuple<T1, T2, T3, T4, T5, T6, T7>(item1, item2, item3, item4, item5, item6, item7);
 | 
			
		||||
        public static NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8> Create<T1, T2, T3, T4, T5, T6, T7, T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => new NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8>(item1, item2, item3, item4, item5, item6, item7, item8);
 | 
			
		||||
        public static NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> Create<T1, T2, T3, T4, T5, T6, T7, T8, T9>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9) => new NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>(item1, item2, item3, item4, item5, item6, item7, item8, item9);
 | 
			
		||||
        public static NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Create<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10) => new NaviteTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10);
 | 
			
		||||
        public static NativeTuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2) => new NativeTuple<T1, T2>(item1, item2);
 | 
			
		||||
        public static NativeTuple<T1, T2, T3> Create<T1, T2, T3>(T1 item1, T2 item2, T3 item3) => new NativeTuple<T1, T2, T3>(item1, item2, item3);
 | 
			
		||||
        public static NativeTuple<T1, T2, T3, T4> Create<T1, T2, T3, T4>(T1 item1, T2 item2, T3 item3, T4 item4) => new NativeTuple<T1, T2, T3, T4>(item1, item2, item3, item4);
 | 
			
		||||
        public static NativeTuple<T1, T2, T3, T4, T5> Create<T1, T2, T3, T4, T5>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => new NativeTuple<T1, T2, T3, T4, T5>(item1, item2, item3, item4, item5);
 | 
			
		||||
        public static NativeTuple<T1, T2, T3, T4, T5, T6> Create<T1, T2, T3, T4, T5, T6>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => new NativeTuple<T1, T2, T3, T4, T5, T6>(item1, item2, item3, item4, item5, item6);
 | 
			
		||||
        public static NativeTuple<T1, T2, T3, T4, T5, T6, T7> Create<T1, T2, T3, T4, T5, T6, T7>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => new NativeTuple<T1, T2, T3, T4, T5, T6, T7>(item1, item2, item3, item4, item5, item6, item7);
 | 
			
		||||
        public static NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8> Create<T1, T2, T3, T4, T5, T6, T7, T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) => new NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8>(item1, item2, item3, item4, item5, item6, item7, item8);
 | 
			
		||||
        public static NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> Create<T1, T2, T3, T4, T5, T6, T7, T8, T9>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9) => new NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>(item1, item2, item3, item4, item5, item6, item7, item8, item9);
 | 
			
		||||
        public static NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Create<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10) => new NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class NaviteTuple<T1, T2>
 | 
			
		||||
    public class NativeTuple<T1, T2>
 | 
			
		||||
    {
 | 
			
		||||
        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<T1, T2, T3>
 | 
			
		||||
    public class NativeTuple<T1, T2, T3>
 | 
			
		||||
    {
 | 
			
		||||
        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<T1, T2, T3, T4>
 | 
			
		||||
    public class NativeTuple<T1, T2, T3, T4>
 | 
			
		||||
    {
 | 
			
		||||
        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<T1, T2, T3, T4, T5>
 | 
			
		||||
    public class NativeTuple<T1, T2, T3, T4, T5>
 | 
			
		||||
    {
 | 
			
		||||
        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<T1, T2, T3, T4, T5, T6>
 | 
			
		||||
    public class NativeTuple<T1, T2, T3, T4, T5, T6>
 | 
			
		||||
    {
 | 
			
		||||
        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<T1, T2, T3, T4, T5, T6, T7>
 | 
			
		||||
    public class NativeTuple<T1, T2, T3, T4, T5, T6, T7>
 | 
			
		||||
    {
 | 
			
		||||
        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<T1, T2, T3, T4, T5, T6, T7, T8>
 | 
			
		||||
    public class NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8>
 | 
			
		||||
    {
 | 
			
		||||
        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<T1, T2, T3, T4, T5, T6, T7, T8, T9>
 | 
			
		||||
    public class NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>
 | 
			
		||||
    {
 | 
			
		||||
        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<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
 | 
			
		||||
    public class NativeTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
 | 
			
		||||
    {
 | 
			
		||||
        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;
 | 
			
		||||
@@ -66,7 +66,7 @@ namespace FreeSql.Internal
 | 
			
		||||
                trytb.DbOldName = trytb.DbOldName?.ToUpper();
 | 
			
		||||
            }
 | 
			
		||||
            if (tbattr != null) trytb.DisableSyncStructure = tbattr.DisableSyncStructure;
 | 
			
		||||
            var propsLazy = new List<NaviteTuple<PropertyInfo, bool, bool, MethodInfo, MethodInfo>>();
 | 
			
		||||
            var propsLazy = new List<NativeTuple<PropertyInfo, bool, bool, MethodInfo, MethodInfo>>();
 | 
			
		||||
            var propsNavObjs = new List<PropertyInfo>();
 | 
			
		||||
            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<PropertyInfo, bool, bool, MethodInfo, MethodInfo> vp, StringBuilder cscode)
 | 
			
		||||
        public static void AddTableRef(CommonUtils common, TableInfo trytb, PropertyInfo pnv, bool isLazy, NativeTuple<PropertyInfo, bool, bool, MethodInfo, MethodInfo> vp, StringBuilder cscode)
 | 
			
		||||
        {
 | 
			
		||||
            var getMethod = vp?.Item4;
 | 
			
		||||
            var setMethod = vp?.Item5;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user