diff --git a/OrmTest/OrmTest.csproj b/OrmTest/OrmTest.csproj index 2b0189d05..9e057de78 100644 --- a/OrmTest/OrmTest.csproj +++ b/OrmTest/OrmTest.csproj @@ -46,10 +46,11 @@ - + - + + diff --git a/OrmTest/Program.cs b/OrmTest/Program.cs index 0b5cd574a..67636495f 100644 --- a/OrmTest/Program.cs +++ b/OrmTest/Program.cs @@ -11,18 +11,18 @@ using System.Data.SqlClient; using OrmTest.UnitTest; namespace OrmTest { - class Program { static void Main(string[] args) { - //Expression To Sql Unit Test + //Unit Test int eachCount = 1; new Field(eachCount).Init(); new Where(eachCount).Init(); new Method(eachCount).Init(); new JoinQuery(eachCount).Init(); new SingleQuery(eachCount).Init(); + new SingleQuery(eachCount).Init(); } } } diff --git a/OrmTest/UnitTest/Query/JoinQuery.cs b/OrmTest/UnitTest/Query/JoinQuery.cs new file mode 100644 index 000000000..967f08801 --- /dev/null +++ b/OrmTest/UnitTest/Query/JoinQuery.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +using System.Linq.Expressions; +using OrmTest.Models; +namespace OrmTest.UnitTest +{ + public class JoinQuery : ExpTestBase + { + private JoinQuery() { } + public JoinQuery(int eachCount) + { + this.Count = eachCount; + } + internal void Init() + { + base.Begin(); + for (int i = 0; i < base.Count; i++) + { + Q1(); + Q2(); + } + base.End("Method Test"); + } + + public void Q1() + { + using (var db = GetInstance()) + { + var list = db.Queryable((st, sc) => new object[] { + JoinType.Left,st.SchoolId==sc.Id + }).Where(st => st.Id > 0).Select("*").ToList(); + } + } + public void Q2() + { + using (var db = GetInstance()) + { + var list = db.Queryable((st, sc) => new object[] { + JoinType.Left,st.SchoolId==sc.Id + }).Where(st=>st.Id>0).Select("*").ToList(); + } + } + + + public SqlSugarClient GetInstance() + { + SqlSugarClient db = new SqlSugarClient(new SystemTablesConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); + db.Database.IsEnableLogEvent = true; + db.Database.LogEventStarting = (sql, pars) => + { + Console.WriteLine(sql+" "+pars); + }; + return db; + } + } +} diff --git a/OrmTest/UnitTest/Query/Join.cs b/OrmTest/UnitTest/Query/SelectQuery.cs similarity index 73% rename from OrmTest/UnitTest/Query/Join.cs rename to OrmTest/UnitTest/Query/SelectQuery.cs index 8f3a7e522..3b42c9949 100644 --- a/OrmTest/UnitTest/Query/Join.cs +++ b/OrmTest/UnitTest/Query/SelectQuery.cs @@ -8,10 +8,10 @@ using System.Linq.Expressions; using OrmTest.Models; namespace OrmTest.UnitTest { - public class JoinQuery : ExpTestBase + public class SelectQuery : ExpTestBase { - private JoinQuery() { } - public JoinQuery(int eachCount) + private SelectQuery() { } + public SelectQuery(int eachCount) { this.Count = eachCount; } @@ -29,13 +29,10 @@ namespace OrmTest.UnitTest { using (var db = GetInstance()) { - var list = db.Queryable((st, sc) => new object[] { - JoinType.Left,st.SchoolId==sc.Id - }).Where(st=>st.Id>0).ToList(); + var list = db.Queryable().Where(st => st.Id > 0).ToList(); } } - public SqlSugarClient GetInstance() { SqlSugarClient db = new SqlSugarClient(new SystemTablesConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); diff --git a/OrmTest/UnitTest/Query/Single.cs b/OrmTest/UnitTest/Query/SingleQuery.cs similarity index 100% rename from OrmTest/UnitTest/Query/Single.cs rename to OrmTest/UnitTest/Query/SingleQuery.cs diff --git a/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 348b8637e..e8aa08953 100644 --- a/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -207,12 +207,17 @@ namespace SqlSugar public ISugarQueryable Select(Expression> expression) where TResult : class, new() { var reval = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + reval.Context = this.Context; + reval.Pars = this.Pars; return reval; } public ISugarQueryable Select(string selectValue) where TResult : class, new() { var reval = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + reval.Context = this.Context; + reval.Context.SqlBuilder.LambadaQueryBuilder.SelectValue = selectValue; + reval.Pars = this.Pars; return reval; }