From ff9b1d6f76d5469c87a0a248f0f2af3c29a26982 Mon Sep 17 00:00:00 2001 From: skx <610262374@qq.com> Date: Tue, 24 Nov 2020 21:15:28 +0800 Subject: [PATCH] Queryable.AddParameters In Array bug --- .../SqlServerTest/UnitTest/UQueryable.cs | 18 +++++++++++++----- .../Abstract/AdoProvider/AdoProvider.cs | 9 ++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs index 192156520..2027a455a 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs @@ -54,7 +54,7 @@ namespace OrmTest UValidate.Check(sql, "SELECT [Name],[Price],[CreateTime],[CustomId] FROM [Order] ", "Queryable"); var cts = IEnumerbleContains.Data(); - var list2=Db.Queryable() + var list2 = Db.Queryable() .Where(p => /*ids.*/cts.Select(c => c.Id).Contains(p.Id)).ToList(); var cts2 = IEnumerbleContains.Data().ToList(); ; @@ -81,18 +81,18 @@ namespace OrmTest }, o => o.OrderSn == saleOrderInfo.OrderSn && o.OrderStatus != 1); var ids = Enumerable.Range(1, 11).ToList(); - var list8=Db.Queryable().Where(it => SqlFunc.ContainsArrayUseSqlParameters(ids, it.Id)).ToList(); + var list8 = Db.Queryable().Where(it => SqlFunc.ContainsArrayUseSqlParameters(ids, it.Id)).ToList(); var result2 = Db.Queryable().Where(o => o.XH == UserLoginInfo.XH).Select(o => o.XH).ToSql(); var x = Db.Queryable().Select(it => new BoolTest2() { - a =it.a + a = it.a }).ToSql(); UValidate.Check(x.Key, "SELECT [a] AS [a] FROM [BoolTest1] ", "Queryable"); x = Db.Queryable().Select(it => new BoolTest1() { - a = it.a.Value + a = it.a.Value }).ToSql(); UValidate.Check(x.Key, "SELECT [a] AS [a] FROM [BoolTest2] ", "Queryable"); @@ -125,10 +125,18 @@ namespace OrmTest Addtime = m2.Addtime, RuleType = m2.RuleType, }).ToList(); - if (string.IsNullOrEmpty (vmList.First().IpRange) ) + if (string.IsNullOrEmpty(vmList.First().IpRange)) { throw new Exception("Queryable"); } + + Db.Insertable(new Order() { CreateTime=DateTime.Now, CustomId=1, Name="a",Price=1 }).ExecuteCommand(); + var sa = Db.SqlQueryable("SELECT * FroM [ORDER] where id in (@id) "); + sa.AddParameters(new List() { + new SugarParameter("id",new int[]{ 1}) + }); + int i = 0; + var salist= sa.ToPageList(1,2,ref i); } /// diff --git a/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs index b22697cc7..8483694f0 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs @@ -1374,7 +1374,14 @@ namespace SqlSugar { sql = sql.Replace("@" + item.ParameterName.Substring(1), newValues.ToArray().ToJoinSqlInVals()); } - sql = sql.Replace(item.ParameterName, newValues.ToArray().ToJoinSqlInVals()); + if (item.ParameterName.Substring(0, 1) != this.SqlParameterKeyWord) + { + sql = sql.Replace(this.SqlParameterKeyWord+item.ParameterName, newValues.ToArray().ToJoinSqlInVals()); + } + else + { + sql = sql.Replace(item.ParameterName, newValues.ToArray().ToJoinSqlInVals()); + } item.Value = DBNull.Value; } }