diff --git a/Src/Asp.Net/PerformanceTest/Common/OrmType.cs b/Src/Asp.Net/PerformanceTest/Common/OrmType.cs index b471d3577..87d6b4f81 100644 --- a/Src/Asp.Net/PerformanceTest/Common/OrmType.cs +++ b/Src/Asp.Net/PerformanceTest/Common/OrmType.cs @@ -10,6 +10,7 @@ namespace PerformanceTest { SqlSugar, Dapper, - EF + EF, + FREE } } diff --git a/Src/Asp.Net/PerformanceTest/PerformanceTest.csproj b/Src/Asp.Net/PerformanceTest/PerformanceTest.csproj index 39540ef48..f317e865b 100644 --- a/Src/Asp.Net/PerformanceTest/PerformanceTest.csproj +++ b/Src/Asp.Net/PerformanceTest/PerformanceTest.csproj @@ -49,13 +49,26 @@ ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll True + + ..\packages\FreeSql.2.0.101\lib\net45\FreeSql.dll + + + ..\packages\FreeSql.Provider.SqlServer.2.0.101\lib\net451\FreeSql.Provider.SqlServer.dll + True + ..\packages\SyntacticSugar.2.4.1\lib\net40\SyntacticSugar.dll + + ..\packages\System.Data.Common.4.3.0\lib\net451\System.Data.Common.dll + + + ..\packages\System.Data.SqlClient.4.8.2\lib\net451\System.Data.SqlClient.dll + @@ -74,6 +87,7 @@ + diff --git a/Src/Asp.Net/PerformanceTest/Program.cs b/Src/Asp.Net/PerformanceTest/Program.cs index 9382b40bb..0586d3fcf 100644 --- a/Src/Asp.Net/PerformanceTest/Program.cs +++ b/Src/Asp.Net/PerformanceTest/Program.cs @@ -18,8 +18,8 @@ namespace PerformanceTest { InitData(); - var type = DemoType.Insert; - var ormType = OrmType.EF; + var type = DemoType.GetById; + var ormType = OrmType.SqlSugar; switch (type) { case DemoType.GetAll: @@ -34,6 +34,9 @@ namespace PerformanceTest case DemoType.Insert: new TestInsert().Init(ormType); break; + case DemoType.Like: + new TestLike().Init(ormType); + break; default: break; } @@ -78,7 +81,8 @@ namespace PerformanceTest GetAll, GetById, GetSql, - Insert + Insert, + Like } } } diff --git a/Src/Asp.Net/PerformanceTest/TestItems/TestGetById.cs b/Src/Asp.Net/PerformanceTest/TestItems/TestGetById.cs index 07e03b030..0f8f26055 100644 --- a/Src/Asp.Net/PerformanceTest/TestItems/TestGetById.cs +++ b/Src/Asp.Net/PerformanceTest/TestItems/TestGetById.cs @@ -33,6 +33,9 @@ namespace PerformanceTest.TestItems case OrmType.EF: EF(eachCount); break; + case OrmType.FREE: + Free(eachCount); + break; default: break; } @@ -50,11 +53,25 @@ namespace PerformanceTest.TestItems { using (SqlSugarClient conn = Config.GetSugarConn()) { - var list2 = conn.Queryable().InSingle(1); + var list2 = conn.Queryable().First(it=>it.Id==1); } }); } + private static void Free(int eachCount) + { + GC.Collect();//回收资源 + System.Threading.Thread.Sleep(1);//休息1秒 + PerHelper.Execute(eachCount, "free", () => + { + IFreeSql fsql = new FreeSql.FreeSqlBuilder() + .UseConnectionString(FreeSql.DataType.SqlServer, Config.connectionString) + .UseAutoSyncStructure(false) //自动同步实体结构到数据库 + .Build(); + var list2 = fsql.Queryable().Where(it=>it.Id==1).First(); + //用.First(it=>it.Id==1)报错 + }); + } private static void Dapper(int eachCount) { GC.Collect();//回收资源 diff --git a/Src/Asp.Net/PerformanceTest/TestItems/TestLike.cs b/Src/Asp.Net/PerformanceTest/TestItems/TestLike.cs new file mode 100644 index 000000000..2cf7cfddd --- /dev/null +++ b/Src/Asp.Net/PerformanceTest/TestItems/TestLike.cs @@ -0,0 +1,81 @@ +using Dapper; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Data.Entity; +using System.Data.SqlClient; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PerformanceTest.TestItems +{ + public class TestLike + { + public void Init(OrmType type) + { + Database.SetInitializer(null); + Console.WriteLine("测试SQL查询的速度"); + var eachCount = 1; + + var beginDate = DateTime.Now; + for (int i = 0; i < 20; i++) + { + switch (type) + { + case OrmType.SqlSugar: + SqlSugar(eachCount); + break; + case OrmType.Dapper: + Dapper(eachCount); + break; + case OrmType.EF: + EF(eachCount); + break; + case OrmType.FREE: + Free(eachCount); + break; + } + } + Console.Write("总计:" + (DateTime.Now - beginDate).TotalMilliseconds / 1000.0); + } + + + private static void Free(int eachCount) + { + GC.Collect();//回收资源 + System.Threading.Thread.Sleep(1);//休息1秒 + + PerHelper.Execute(eachCount, "Free like ", () => + { + IFreeSql fsql = new FreeSql.FreeSqlBuilder() + .UseConnectionString(FreeSql.DataType.SqlServer,Config.connectionString) + .UseAutoSyncStructure(false) //自动同步实体结构到数据库 + .Build(); + var list2 = fsql.Queryable().Where(it => it.F_String.Contains("abc")).ToList(); + }); + } + + private static void SqlSugar(int eachCount) + { + GC.Collect();//回收资源 + System.Threading.Thread.Sleep(1);//休息1秒 + + PerHelper.Execute(eachCount, "SqlSugar like ", () => + { + SqlSugarClient conn = Config.GetSugarConn(); + var list2 = conn.Queryable().Where(it => it.F_String.Contains("abc")).ToList(); + }); + } + + private static void Dapper(int eachCount) + { + throw new Exception("未实现"); + } + + private static void EF(int eachCount) + { + throw new Exception("未实现"); + } + } +} diff --git a/Src/Asp.Net/PerformanceTest/packages.config b/Src/Asp.Net/PerformanceTest/packages.config index 8a9b79671..84443f7b5 100644 --- a/Src/Asp.Net/PerformanceTest/packages.config +++ b/Src/Asp.Net/PerformanceTest/packages.config @@ -4,5 +4,9 @@ + + + + \ No newline at end of file