diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 1985fa315..0750c2e30 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -318,6 +318,12 @@ namespace OrmTest.Demo var getUnionAllList2 = db.UnionAll(db.Queryable(), db.Queryable()).ToList(); + var getUnionAllList3= db.UnionAll(db.Queryable() + .Select(it => new Student { Id =SqlFunc.ToInt32(1) ,Name=SqlFunc.ToString("2"), SchoolId = Convert.ToInt32(3) }) + , db.Queryable() + .Select(it => new Student { Id = SqlFunc.ToInt32(11) , Name = SqlFunc.ToString("22") , SchoolId=Convert.ToInt32(33)})) + .Select(it=>new Student() { Id=SqlFunc.ToInt32(111), Name = SqlFunc.ToString("222") }).ToList(); + var test1 = db.Queryable((st, sc) => st.SchoolId == sc.Id).Where(st=>st.CreateTime>SqlFunc.GetDate()).Select((st, sc) => SqlFunc.ToInt64(sc.Id)).ToList(); var test2 = db.Queryable((st, sc) => st.SchoolId == sc.Id) .Where(st => diff --git a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs index 350b1740c..457efd0f0 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs @@ -351,7 +351,7 @@ namespace SqlSugar var shortName1 = joinExpression.Parameters[0].Name; var sqlObj1 = joinQueryable1.ToSql(); string sql1 = sqlObj1.Key; - UtilMethods.RepairReplicationParameters(ref sql1, sqlObj1.Value.ToArray(), 0); + UtilMethods.RepairReplicationParameters(ref sql1, sqlObj1.Value.ToArray(), 0,"Join"); queryable.QueryBuilder.EntityName = sqlBuilder.GetPackTable(sql1, shortName1); ; queryable.QueryBuilder.Parameters.AddRange(sqlObj1.Value); @@ -359,7 +359,7 @@ namespace SqlSugar var shortName2 = joinExpression.Parameters[1].Name; var sqlObj2 = joinQueryable2.ToSql(); string sql2 = sqlObj2.Key; - UtilMethods.RepairReplicationParameters(ref sql2, sqlObj2.Value.ToArray(), 1); + UtilMethods.RepairReplicationParameters(ref sql2, sqlObj2.Value.ToArray(), 1, "Join"); queryable.QueryBuilder.Parameters.AddRange(sqlObj2.Value); var exp = queryable.QueryBuilder.GetExpressionValue(joinExpression, ResolveExpressType.WhereMultiple); queryable.QueryBuilder.JoinQueryInfos.Add(new JoinQueryInfo() { JoinIndex = 0, JoinType = joinType, JoinWhere = exp.GetResultString(), TableName = sqlBuilder.GetPackTable(sql2, shortName2) }); @@ -378,7 +378,7 @@ namespace SqlSugar { var sqlObj = item.ToSql(); string sql = sqlObj.Key; - UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i); + UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i, "UnionAll"); if (sqlObj.Value.HasValue()) allItems.Add(new KeyValuePair>(sql, sqlObj.Value)); else @@ -406,7 +406,7 @@ namespace SqlSugar { var sqlObj = item.ToSql(); string sql = sqlObj.Key; - UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i); + UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i, "Union"); if (sqlObj.Value.HasValue()) allItems.Add(new KeyValuePair>(sql, sqlObj.Value)); else diff --git a/Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs b/Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs index 821b2b45d..945aaf8c3 100644 --- a/Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs +++ b/Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs @@ -68,7 +68,7 @@ namespace SqlSugar return (T)Convert.ChangeType(obj, typeof(T)); } - internal static void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex) + internal static void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex,string append=null) { if (appendSql.HasValue() && parameters.HasValue()) { @@ -76,7 +76,7 @@ namespace SqlSugar { //Compatible with.NET CORE parameters case var name = parameter.ParameterName; - string newName = name + addIndex; + string newName = name +append+ addIndex; appendSql = appendSql.Replace(name, newName); parameter.ParameterName = newName; }