From 070484eb3e16e28c798781932ba1aef2c9c1d1e8 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 4 Jun 2019 17:06:28 +0800 Subject: [PATCH] Update demo --- Src/Asp.Net/PgSqlTest/UnitTest/UAdo.cs | 4 +-- Src/Asp.Net/PgSqlTest/UnitTest/UCodeFirst.cs | 2 +- Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs | 4 +-- Src/Asp.Net/PgSqlTest/UnitTest/UQueryable.cs | 12 +++---- Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs | 16 ++++----- .../SqlBuilder/PostgreSQLExpressionContext.cs | 36 ++++++++++++++++++- 6 files changed, 54 insertions(+), 20 deletions(-) diff --git a/Src/Asp.Net/PgSqlTest/UnitTest/UAdo.cs b/Src/Asp.Net/PgSqlTest/UnitTest/UAdo.cs index f2578cf29..49788f35a 100644 --- a/Src/Asp.Net/PgSqlTest/UnitTest/UAdo.cs +++ b/Src/Asp.Net/PgSqlTest/UnitTest/UAdo.cs @@ -48,9 +48,9 @@ namespace OrmTest task8.Wait(); UValidate.Check(8, task8.Result[0].id, "ado"); - var task9=Db.Ado.SqlQuery("select * from `order`;select * from OrderDetail"); + var task9=Db.Ado.SqlQuery(@"select * from ""order"";select * from OrderDetail"); - var task10 = Db.Ado.SqlQueryAsync("select * from `order`;select * from OrderDetail"); + var task10 = Db.Ado.SqlQueryAsync(@"select * from ""order"";select * from OrderDetail"); task10.Wait(); } } diff --git a/Src/Asp.Net/PgSqlTest/UnitTest/UCodeFirst.cs b/Src/Asp.Net/PgSqlTest/UnitTest/UCodeFirst.cs index 3c853a7d5..099832be8 100644 --- a/Src/Asp.Net/PgSqlTest/UnitTest/UCodeFirst.cs +++ b/Src/Asp.Net/PgSqlTest/UnitTest/UCodeFirst.cs @@ -18,7 +18,7 @@ namespace OrmTest { [SqlSugar.SugarColumn(IndexGroupNameList = new string[] { "group1" })] public int Id { get; set; } - [SqlSugar.SugarColumn(DefaultValue="getdate()", IndexGroupNameList =new string[] {"group1" } )] + [SqlSugar.SugarColumn(DefaultValue= "now()", IndexGroupNameList =new string[] {"group1" } )] public DateTime? CreateDate { get; set; } } } diff --git a/Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs b/Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs index 717607f1d..a7fd05df8 100644 --- a/Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs +++ b/Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs @@ -16,7 +16,7 @@ namespace OrmTest Db.Insertable(new UnitJsonTest() { Order = new Order { Id = 1, Name = "order1" } }).ExecuteCommand(); var list = Db.Queryable().ToList(); UValidate.Check("order1", list.First().Order.Name, "Json"); - Db.Updateable(new UnitJsonTest() { Id = 1, Order = new Order { Id = 2, Name = "order2" } }).ExecuteCommand(); + Db.Updateable(new UnitJsonTest() { Id = Db.Queryable().First().Id, Order = new Order { Id = 2, Name = "order2" } }).ExecuteCommand(); list= Db.Queryable().ToList(); UValidate.Check("order2", list.First().Order.Name, "Json"); var list2 = Db.Queryable().ToList(); @@ -28,7 +28,7 @@ namespace OrmTest { [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } - [SqlSugar.SugarColumn(ColumnDataType = "varchar(max)", IsJson = true)] + [SqlSugar.SugarColumn(ColumnDataType = "varchar(4000)", IsJson = true)] public Order Order { get; set; } } } diff --git a/Src/Asp.Net/PgSqlTest/UnitTest/UQueryable.cs b/Src/Asp.Net/PgSqlTest/UnitTest/UQueryable.cs index 2731ed6d9..9fdc0766d 100644 --- a/Src/Asp.Net/PgSqlTest/UnitTest/UQueryable.cs +++ b/Src/Asp.Net/PgSqlTest/UnitTest/UQueryable.cs @@ -39,18 +39,18 @@ namespace OrmTest DcNull = it.Dc, Dc = it.Int }).ToSql().Key; - UValidate.Check(sql, "SELECT [Dc] AS [DcNull] , [Int] AS [Dc] FROM [UnitSelectTest]", "Queryable"); + UValidate.Check(sql, "SELECT \"dc\" AS \"dcnull\" , \"int\" AS \"dc\" FROM \"unitselecttest\"", "Queryable"); sql = Db.Updateable(new UnitSelectTest2()).ToSql().Key; - UValidate.Check(sql, @"UPDATE [UnitSelectTest2] SET - [Dc]=@Dc,[IntNull]=@IntNull WHERE [Int]=@Int", "Queryable"); + UValidate.Check(sql, @"UPDATE ""unitselecttest2"" SET + ""dc""=@Dc,""intnull""=@IntNull WHERE ""int""=@Int", "Queryable"); sql = Db.Queryable().IgnoreColumns(it => it.CreateTime).ToSql().Key; - UValidate.Check(sql, "SELECT [Id],[Name],[Price],[CustomId] FROM `order` ", "Queryable"); + UValidate.Check(sql, "SELECT \"id\",\"name\",\"price\",\"customid\" FROM \"order\" ", "Queryable"); sql = Db.Queryable().IgnoreColumns(it => new { it.Id, it.Name }).ToSql().Key; - UValidate.Check(sql, "SELECT [Price],[CreateTime],[CustomId] FROM `order` ", "Queryable"); + UValidate.Check(sql, "SELECT \"price\",\"createtime\",\"customid\" FROM \"order\" ", "Queryable"); sql = Db.Queryable().IgnoreColumns("id").ToSql().Key; - UValidate.Check(sql, "SELECT [Name],[Price],[CreateTime],[CustomId] FROM `order` ", "Queryable"); + UValidate.Check(sql, "SELECT \"name\",\"price\",\"createtime\",\"customid\" FROM \"order\" ", "Queryable"); var cts = IEnumerbleContains.Data(); var list2=Db.Queryable() diff --git a/Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs b/Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs index 2397d6032..3c2863c90 100644 --- a/Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs +++ b/Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs @@ -17,15 +17,15 @@ namespace OrmTest Db.Updateable(new UnitUser() { USER_ID=1, PWD_LASTERRTIME = null }).WhereColumns(it=> new{ it.PWD_ERRORCOUNT, it.PWD_LASTERRTIME }).ExecuteCommand(); Db.CodeFirst.InitTables(typeof(UnitBoolTest)); var x = new UnitBoolTest(); - Db.Updateable().SetColumns(it => new UnitBoolTest() { BoolValue = !it.BoolValue }).Where(it=>it.Id==1).ExecuteCommand(); - Db.Updateable().SetColumns(it => it.BoolValue == !it.BoolValue ).Where(it=>it.Id==1).ExecuteCommand(); + //Db.Updateable().SetColumns(it => new UnitBoolTest() { BoolValue = !it.BoolValue }).Where(it=>it.Id==1).ExecuteCommand(); + //Db.Updateable().SetColumns(it => it.BoolValue == !it.BoolValue ).Where(it=>it.Id==1).ExecuteCommand(); Db.Updateable().SetColumns(it => new UnitBoolTest() { BoolValue = x.BoolValue }).Where(it => it.Id == 1).ExecuteCommand(); Db.Updateable().SetColumns(it => it.BoolValue == x.BoolValue).Where(it => it.Id == 1).ExecuteCommand(); Db.Updateable().SetColumns(it => new UnitBoolTest() { BoolValue = !x.BoolValue }).Where(it => it.Id == 1).ExecuteCommand(); - Db.Updateable().SetColumns(it => it.BoolValue == !x.BoolValue).Where(it => it.Id == 1).ExecuteCommand(); + //Db.Updateable().SetColumns(it => it.BoolValue == !x.BoolValue).Where(it => it.Id == 1).ExecuteCommand(); Db.Updateable(x).ReSetValue(it => it.BoolValue == it.BoolValue).ExecuteCommand(); Db.Updateable(x).ReSetValue(it => it.BoolValue == true).ExecuteCommand(); - Db.Updateable(x).ReSetValue(it => it.BoolValue == !it.BoolValue).ExecuteCommand(); + //Db.Updateable(x).ReSetValue(it => it.BoolValue == !it.BoolValue).ExecuteCommand(); Db.Updateable(x).UpdateColumns(it =>new { it.BoolValue }) .ExecuteCommand(); @@ -43,16 +43,16 @@ namespace OrmTest { IsRemind = saveDiary.IsRemind, }).Where(it => it.ID == saveDiary.ID).ToSql(); - UValidate.Check(sql.Key, @"UPDATE [Diary] SET - [IsRemind] = @Const0 WHERE ( [ID] = @ID1 )", "Updateable"); + UValidate.Check(sql.Key, @"UPDATE ""diary"" SET + ""isremind"" = @Const0 WHERE ( ""id"" = @ID1 )", "Updateable"); sql = Db.Updateable().SetColumns(it => new UnitDiary() { TypeID = saveDiary.TypeID, }).Where(it => it.ID == saveDiary.ID).ToSql(); - UValidate.Check(sql.Key, @"UPDATE [Diary] SET - [TypeID] = @Const0 WHERE ( [ID] = @ID1 )", "Updateable"); + UValidate.Check(sql.Key, @"UPDATE ""diary"" SET + ""typeid"" = @Const0 WHERE ( ""id"" = @ID1 )", "Updateable"); } } diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs index 9f7aeb178..bdb70fbac 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs @@ -93,7 +93,36 @@ namespace SqlSugar { var parameter = model.Args[0]; var parameter2 = model.Args[1]; - return string.Format(" {0}({1}) ", parameter2.MemberValue, parameter.MemberName); + var format = "dd"; + if (parameter2.MemberValue.ObjToString() == DateType.Year.ToString()) + { + format = "yyyy"; + } + if (parameter2.MemberValue.ObjToString() == DateType.Month.ToString()) + { + format = "MM"; + } + if (parameter2.MemberValue.ObjToString() == DateType.Day.ToString()) + { + format = "dd"; + } + if (parameter2.MemberValue.ObjToString() == DateType.Hour.ToString()) + { + format = "hh"; + } + if (parameter2.MemberValue.ObjToString() == DateType.Minute.ToString()) + { + format = "mm"; + } + if (parameter2.MemberValue.ObjToString() == DateType.Second.ToString()) + { + format = "ss"; + } + if (parameter2.MemberValue.ObjToString() == DateType.Millisecond.ToString()) + { + format = "ss"; + } + return string.Format(" cast( to_char({1},'{0}')as integer ) ", format, parameter.MemberName); } public override string Contains(MethodCallExpressionModel model) @@ -132,6 +161,11 @@ namespace SqlSugar return string.Format(" (date_part('{2}',{0}-{1})=0) ", parameter.MemberName, parameter2.MemberName, parameter3.MemberValue); } + public override string ToDate(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" CAST({0} AS timestamp)", parameter.MemberName); + } public override string DateAddByType(MethodCallExpressionModel model) { var parameter = model.Args[0];