diff --git a/Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs b/Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs index 156a31859..8d28a0fdf 100644 --- a/Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs +++ b/Src/Asp.Net/PgSqlTest/UnitTest/UJson.cs @@ -24,9 +24,36 @@ namespace OrmTest Db.CodeFirst.InitTables(); Db.Insertable(new UnitArray2() { MenuIds = new float[] { 1, 2 } }).ExecuteCommand(); var x=Db.Queryable().ToList(); + Db.CodeFirst.InitTables(); + Db.Insertable(new UnitArray311() + { + Text=new string[] {"a","a" } + + }).ExecuteCommand(); + Db.Updateable(new List { + new UnitArray311() + { + Text = new string[] { "a12", "a2" }, + Id=1 + + }, + new UnitArray311() + { + Text = new string[] { "a1", "a1" }, + Id=2 + + } + }).ExecuteCommand(); + var xxx = Db.Queryable().ToList(); } } - + public class UnitArray311 + { + [SugarColumn(IsArray =true,ColumnDataType ="text []" )] + public string[] Text { get; set; } + [SugarColumn(IsPrimaryKey =true,IsIdentity =true)] + public int Id { get; set; } + } public class UnitArray2 { [SugarColumn(ColumnDataType = "real []", IsArray = true)] diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs index 0e9a6b9d0..75fffd093 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs @@ -34,7 +34,7 @@ namespace SqlSugar } } - public object FormatValue(object value,string name,int i) + public object FormatValue(object value,string name,int i,DbColumnInfo columnInfo) { if (value == null) { @@ -43,10 +43,19 @@ namespace SqlSugar else { var type = value.GetType(); - if (type == UtilConstants.DateType) + if (type == UtilConstants.DateType||columnInfo.IsArray||columnInfo.IsJson) { var parameterName = this.Builder.SqlParameterKeyWord + name + i; - this.Parameters.Add(new SugarParameter(parameterName, value)); + var paramter = new SugarParameter(parameterName, value); + if (columnInfo.IsJson) + { + paramter.IsJson = true; + } + if (columnInfo.IsArray) + { + paramter.IsArray = true; + } + this.Parameters.Add(paramter); return parameterName; } else if (type == UtilConstants.ByteArrayType) @@ -145,7 +154,7 @@ namespace SqlSugar dbType = "varchar"; } } - return string.Format("CAST({0} AS {1})", FormatValue(it.Value,it.DbColumnName,i), dbType); + return string.Format("CAST({0} AS {1})", FormatValue(it.Value,it.DbColumnName,i,it), dbType); })) + ")"); ++i;