From 17478c53083caf44d1f5c074543aa60bff637378 Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Sun, 4 Jul 2021 12:48:17 +0800 Subject: [PATCH] Update demo --- Src/Asp.Net/MySqlTest/Demo/DemoJ_Report.cs | 142 ++++++++++++++++++ Src/Asp.Net/MySqlTest/MySqlTest.csproj | 1 + Src/Asp.Net/MySqlTest/Program.cs | 2 +- Src/Asp.Net/PgSqlTest/Demo/DemoJ_Report.cs | 142 ++++++++++++++++++ Src/Asp.Net/PgSqlTest/PgSqlTest.csproj | 1 + Src/Asp.Net/PgSqlTest/Program.cs | 2 +- .../SqliteTest/DataBase/SqlSugar4xTest.sqlite | Bin 0 -> 57344 bytes .../DataBase/SqlSugar4xTest2.sqlite | Bin 0 -> 16384 bytes .../DataBase/SqlSugar4xTest3.sqlite | Bin 0 -> 12288 bytes Src/Asp.Net/SqliteTest/Demo/DemoJ_Report.cs | 142 ++++++++++++++++++ Src/Asp.Net/SqliteTest/Program.cs | 2 +- Src/Asp.Net/SqliteTest/SqliteTest.csproj | 1 + 12 files changed, 432 insertions(+), 3 deletions(-) create mode 100644 Src/Asp.Net/MySqlTest/Demo/DemoJ_Report.cs create mode 100644 Src/Asp.Net/PgSqlTest/Demo/DemoJ_Report.cs create mode 100644 Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite create mode 100644 Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest2.sqlite create mode 100644 Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest3.sqlite create mode 100644 Src/Asp.Net/SqliteTest/Demo/DemoJ_Report.cs diff --git a/Src/Asp.Net/MySqlTest/Demo/DemoJ_Report.cs b/Src/Asp.Net/MySqlTest/Demo/DemoJ_Report.cs new file mode 100644 index 000000000..a26eacde1 --- /dev/null +++ b/Src/Asp.Net/MySqlTest/Demo/DemoJ_Report.cs @@ -0,0 +1,142 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class DemoJ_Report + { + public static void Init() + { + Console.WriteLine(""); + Console.WriteLine("#### Utilities Start ####"); + + SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() + { + DbType = DbType.MySql, + ConnectionString = Config.ConnectionString, + InitKeyType = InitKeyType.Attribute, + IsAutoCloseConnection = true, + AopEvents = new AopEvents + { + OnLogExecuting = (sql, p) => + { + Console.WriteLine(sql); + Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value))); + } + } + }); + Demo1(db); + Demo2(db); + Demo3(db); + } + + private static void Demo1(SqlSugarClient db) + { + var list = new List() { 1, 2, 3 }; + var query1 = db.Queryable(); + var queryable2 = db.Reportable(list).ToSingleColumnQueryable(); + var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName)) + .Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList(); + } + private static void Demo2(SqlSugarClient db) + { + var list = db.Queryable().ToList(); + var query1 = db.Queryable(); + var queryable2 = db.Reportable(list).ToQueryable(); + var x = db.Queryable(query1, queryable2, (x1, x2) => x1.Id.Equals(x2.OrderId)) + .Select((x1, x2) => new { name = x1.Name,id=x1.Id, orderid = x2.OrderId }).ToList(); + } + private static void Demo3(SqlSugarClient db) + { + db.CodeFirst.InitTables(); + db.Deleteable().ExecuteCommand(); + db.Insertable(new operateinfo() + { + id=1, + operate_type=1, + operate_time=Convert.ToDateTime("2021-1-1") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-1-2") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-3-1") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-3-2") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-4-2") + }).ExecuteCommand(); + + + var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable(); + var queryableRight = db.Queryable(); + var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x2.operate_time.ToString("yyyy-MM")==SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM")) + .GroupBy((x1,x2)=>x1.ColumnName) + .Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now)) + .Select((x1, x2) => new + { + count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) , + date=SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM") + + }).ToList(); + } + + + public partial class operateinfo + { + public operateinfo() + { + + + } + /// + /// Desc:操作序号 + /// Default: + /// Nullable:False + /// + public int id { get; set; } + + /// + /// Desc:操作时间 + /// Default: + /// Nullable:False + /// + public DateTime operate_time { get; set; } + + /// + /// Desc:操作类型 + /// Default: + /// Nullable:False + /// + public int operate_type { get; set; } + + /// + /// Desc:操作人编号 + /// Default: + /// Nullable:False + /// + public int user_id { get; set; } + + } + } + +} \ No newline at end of file diff --git a/Src/Asp.Net/MySqlTest/MySqlTest.csproj b/Src/Asp.Net/MySqlTest/MySqlTest.csproj index 3552b4434..a09d45382 100644 --- a/Src/Asp.Net/MySqlTest/MySqlTest.csproj +++ b/Src/Asp.Net/MySqlTest/MySqlTest.csproj @@ -87,6 +87,7 @@ + diff --git a/Src/Asp.Net/MySqlTest/Program.cs b/Src/Asp.Net/MySqlTest/Program.cs index 72832d0a2..c5566099a 100644 --- a/Src/Asp.Net/MySqlTest/Program.cs +++ b/Src/Asp.Net/MySqlTest/Program.cs @@ -24,7 +24,7 @@ namespace OrmTest DemoE_CodeFirst.Init(); DemoF_Utilities.Init(); DemoG_SimpleClient.Init(); - + DemoJ_Report.Init(); //Unit test //NewUnitTest.Init(); diff --git a/Src/Asp.Net/PgSqlTest/Demo/DemoJ_Report.cs b/Src/Asp.Net/PgSqlTest/Demo/DemoJ_Report.cs new file mode 100644 index 000000000..9fa57e606 --- /dev/null +++ b/Src/Asp.Net/PgSqlTest/Demo/DemoJ_Report.cs @@ -0,0 +1,142 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class DemoJ_Report + { + public static void Init() + { + Console.WriteLine(""); + Console.WriteLine("#### Utilities Start ####"); + + SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() + { + DbType = DbType.PostgreSQL, + ConnectionString = Config.ConnectionString, + InitKeyType = InitKeyType.Attribute, + IsAutoCloseConnection = true, + AopEvents = new AopEvents + { + OnLogExecuting = (sql, p) => + { + Console.WriteLine(sql); + Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value))); + } + } + }); + Demo1(db); + Demo2(db); + Demo3(db); + } + + private static void Demo1(SqlSugarClient db) + { + var list = new List() { 1, 2, 3 }; + var query1 = db.Queryable(); + var queryable2 = db.Reportable(list).ToSingleColumnQueryable(); + var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName)) + .Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList(); + } + private static void Demo2(SqlSugarClient db) + { + var list = db.Queryable().ToList(); + var query1 = db.Queryable(); + var queryable2 = db.Reportable(list).ToQueryable(); + var x = db.Queryable(query1, queryable2, (x1, x2) => x1.Id.Equals(x2.OrderId)) + .Select((x1, x2) => new { name = x1.Name,id=x1.Id, orderid = x2.OrderId }).ToList(); + } + private static void Demo3(SqlSugarClient db) + { + db.CodeFirst.InitTables(); + db.Deleteable().ExecuteCommand(); + db.Insertable(new operateinfo() + { + id=1, + operate_type=1, + operate_time=Convert.ToDateTime("2021-1-1") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-1-2") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-3-1") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-3-2") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-4-2") + }).ExecuteCommand(); + + + var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable(); + var queryableRight = db.Queryable(); + var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x2.operate_time.ToString("yyyy-MM")==SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM")) + .GroupBy((x1,x2)=>x1.ColumnName) + .Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now)) + .Select((x1, x2) => new + { + count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) , + date=SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM") + + }).ToList(); + } + + + public partial class operateinfo + { + public operateinfo() + { + + + } + /// + /// Desc:操作序号 + /// Default: + /// Nullable:False + /// + public int id { get; set; } + + /// + /// Desc:操作时间 + /// Default: + /// Nullable:False + /// + public DateTime operate_time { get; set; } + + /// + /// Desc:操作类型 + /// Default: + /// Nullable:False + /// + public int operate_type { get; set; } + + /// + /// Desc:操作人编号 + /// Default: + /// Nullable:False + /// + public int user_id { get; set; } + + } + } + +} \ No newline at end of file diff --git a/Src/Asp.Net/PgSqlTest/PgSqlTest.csproj b/Src/Asp.Net/PgSqlTest/PgSqlTest.csproj index 502b9d23e..bf392821a 100644 --- a/Src/Asp.Net/PgSqlTest/PgSqlTest.csproj +++ b/Src/Asp.Net/PgSqlTest/PgSqlTest.csproj @@ -82,6 +82,7 @@ + diff --git a/Src/Asp.Net/PgSqlTest/Program.cs b/Src/Asp.Net/PgSqlTest/Program.cs index 72832d0a2..c5566099a 100644 --- a/Src/Asp.Net/PgSqlTest/Program.cs +++ b/Src/Asp.Net/PgSqlTest/Program.cs @@ -24,7 +24,7 @@ namespace OrmTest DemoE_CodeFirst.Init(); DemoF_Utilities.Init(); DemoG_SimpleClient.Init(); - + DemoJ_Report.Init(); //Unit test //NewUnitTest.Init(); diff --git a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..80f2adcddc2e1041b4c7d84901026573ebae9e50 GIT binary patch literal 57344 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 z z-c;cyt7@yJrd3m<4C553j)Bm&U05T)tt3NyqAGRA)lAFMDtt6qBAP57Nk-!T4Vm*X z`BnML@&);Xe4Bio^rrNp^vBW#>AduybVS-Lt<1lj|6cyf`9I7*k)O(M%a7#V&V4=i z>D*(v{kd8$o&8z%-?HD!{$2J{*+;Smv$tkPvV7+C%!`@NLB;q&0!RP}AOR$R1dsp{ zKmtn%RC*9S4+#?ik&pKayk)Bn{0?8}Ekx3Rp-*oiln#u2dSS72FC>^Q^dOp+A&hAS zT@&g-Buz4#0hz@f1km9DP!EFVRl>%8c&oaKQd3m;F45U@xR6taipxESsxQl!k$BGw zxBCH3&x^MglMryP6k`2=r$-~}esXmW0_f#1W7ll8uZW;jxLBh(j%`$X5I?g*9vCSQ znlMtfu2*`@5Sr*5(AkQvfQ}hMFVR5|4Gs~GHQUFpY@n|`FNS_MU9|^6G%F}yII`v{ zn(J125K=R|sgUbVs_EJaMCHAO@H*I=3-NWZH^Tz#UPy#p=s}3h_9leaY;QtT{Vv{w zi2AbWn9+F;qUy^swl}?Sd(n(uyuFx&fZOj)8d>+fS?)pnyc{M_uJk4hfDLmyrmeVE zwFmJt)108R>W*oE>%er(5ZVNtS+|MKgrR4~&`We2)0~6##UkmdkA-;Cs}N?zq1Tm1 zS=KZxGJURSaOG4t3Xgb32y!Ng|C92gG5Iz5t8o4QBD}>H5Aq*`an)%Fz51I;flB~2WAm{wQ++vm&^Pw DY(a(8 literal 0 HcmV?d00001 diff --git a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest2.sqlite b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest2.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..e2e1e09b96493a5013adff5660c920d1e58489eb GIT binary patch literal 16384 zcmeI&&yUhT6bJAY5Rhc4x5nF~8&k+GO{de+(vyfBh%6v>6G===g>h}dk8J6BUyX@> zjc5N451#!aJa}^o+3Z5JiC#3D?+Z<*yf;(cr>7x(_Ou@*oV;Gei!dQfx+lr9^pFrq zk}BdTh~p}9VsP_XzDi`AD^laf#{*H2uS$~gp!!9e5D1Rwwb2tWV=5P$##An*?a zE=T#2dUzb3Tk`JbuiRFq+>O7CPf@JLr<2{ixq1+Kr4>JE&;AgfDtCjYP|Y zpYfOsh5;Fz_WNWs?wz#96Y``xA??#(*c*t2PP&8OSj^h2^2=!?O^@Pe$~7|M(`XUS zuh-lpJ24Lv9z=_@LW~kI+TN0o`Y2aakB;QYrlIxuT7bZJ2JuvT+fwrG`gaO=fxN{$EzUOX7oo00bZa0SG_<0uX=z1Rwwb2teRA3EY+Qs=RrDp`7mj e#Y_JP2tWV=5P$##AOHafKmY;|fB*z;vA|CW816Cv literal 0 HcmV?d00001 diff --git a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest3.sqlite b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest3.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..1368de74bab3806d6604c63f4342e0cfd1f9d26d GIT binary patch literal 12288 zcmeI&F-yZh6bJCTL~RxH1P7smJTkSkLbP-d2WyE?j8W?q>?F~i8mN_~S8>(J(GTJW zaqwff`3c;-R74CI2Pg6WxFmOZckjY)JIKMlA8AFWm+?iYsmkUV=WK(BF*a>3+gu;P zO=sd`V4lhNre3@w-}F67%`NuB3so^IOE*V6mz2C6jcYb8yJ{l9~aoMzXdsIS$TiYeHY6tsPx_FB!IdaFa*UWe*!x!Vj(p&c)f z6|*8RpW@I}7@wSnadEX)D}64cWP()J+Myt0Mk7|CRx(Nobxlv3-uuo(rQ~d$7sSM~ zcoYxfUTASB*3An91Rwwb2tWV=5P$##AOHafK;Rz<6!Mcyh-w(RuDh~4ZsfXa<5tLJ z + { + Console.WriteLine(sql); + Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value))); + } + } + }); + Demo1(db); + Demo2(db); + Demo3(db); + } + + private static void Demo1(SqlSugarClient db) + { + var list = new List() { 1, 2, 3 }; + var query1 = db.Queryable(); + var queryable2 = db.Reportable(list).ToSingleColumnQueryable(); + var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName)) + .Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList(); + } + private static void Demo2(SqlSugarClient db) + { + var list = db.Queryable().ToList(); + var query1 = db.Queryable(); + var queryable2 = db.Reportable(list).ToQueryable(); + var x = db.Queryable(query1, queryable2, (x1, x2) => x1.Id.Equals(x2.OrderId)) + .Select((x1, x2) => new { name = x1.Name,id=x1.Id, orderid = x2.OrderId }).ToList(); + } + private static void Demo3(SqlSugarClient db) + { + db.CodeFirst.InitTables(); + db.Deleteable().ExecuteCommand(); + db.Insertable(new operateinfo() + { + id=1, + operate_type=1, + operate_time=Convert.ToDateTime("2021-1-1") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-1-2") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-3-1") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-3-2") + }).ExecuteCommand(); + db.Insertable(new operateinfo() + { + id = 1, + operate_type = 1, + operate_time = Convert.ToDateTime("2021-4-2") + }).ExecuteCommand(); + + + var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable(); + var queryableRight = db.Queryable(); + var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x2.operate_time.ToString("yyyy-MM")==SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM")) + .GroupBy((x1,x2)=>x1.ColumnName) + .Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now)) + .Select((x1, x2) => new + { + count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) , + date=SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM") + + }).ToList(); + } + + + public partial class operateinfo + { + public operateinfo() + { + + + } + /// + /// Desc:操作序号 + /// Default: + /// Nullable:False + /// + public int id { get; set; } + + /// + /// Desc:操作时间 + /// Default: + /// Nullable:False + /// + public DateTime operate_time { get; set; } + + /// + /// Desc:操作类型 + /// Default: + /// Nullable:False + /// + public int operate_type { get; set; } + + /// + /// Desc:操作人编号 + /// Default: + /// Nullable:False + /// + public int user_id { get; set; } + + } + } + +} \ No newline at end of file diff --git a/Src/Asp.Net/SqliteTest/Program.cs b/Src/Asp.Net/SqliteTest/Program.cs index 72832d0a2..c5566099a 100644 --- a/Src/Asp.Net/SqliteTest/Program.cs +++ b/Src/Asp.Net/SqliteTest/Program.cs @@ -24,7 +24,7 @@ namespace OrmTest DemoE_CodeFirst.Init(); DemoF_Utilities.Init(); DemoG_SimpleClient.Init(); - + DemoJ_Report.Init(); //Unit test //NewUnitTest.Init(); diff --git a/Src/Asp.Net/SqliteTest/SqliteTest.csproj b/Src/Asp.Net/SqliteTest/SqliteTest.csproj index 7676819a3..82b4a8871 100644 --- a/Src/Asp.Net/SqliteTest/SqliteTest.csproj +++ b/Src/Asp.Net/SqliteTest/SqliteTest.csproj @@ -67,6 +67,7 @@ +