mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-20 02:29:39 +08:00
SetColumns Json bug
This commit is contained in:
@@ -21,6 +21,11 @@ namespace OrmTest
|
|||||||
list= Db.Queryable<UnitJsonTest>().ToList();
|
list= Db.Queryable<UnitJsonTest>().ToList();
|
||||||
UValidate.Check("order2", list.First().Order.Name, "Json");
|
UValidate.Check("order2", list.First().Order.Name, "Json");
|
||||||
var list2 = Db.Queryable<UnitJsonTest>().ToList();
|
var list2 = Db.Queryable<UnitJsonTest>().ToList();
|
||||||
|
var x = new Order() { Name="a" };
|
||||||
|
Db.Updateable<UnitJsonTest2>()
|
||||||
|
.SetColumns(it => it.Name=="a")
|
||||||
|
.Where(it=>it.Id==1)
|
||||||
|
.ExecuteCommand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,6 +35,8 @@ namespace OrmTest
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
[SqlSugar.SugarColumn(IsJson = true)]
|
[SqlSugar.SugarColumn(IsJson = true)]
|
||||||
public Order Order { get; set; }
|
public Order Order { get; set; }
|
||||||
|
[SqlSugar.SugarColumn(IsNullable =true)]
|
||||||
|
public string Name { get; set; }
|
||||||
}
|
}
|
||||||
public class UnitJsonTest
|
public class UnitJsonTest
|
||||||
{
|
{
|
||||||
|
@@ -316,7 +316,7 @@ namespace SqlSugar
|
|||||||
public IUpdateable<T> SetColumns(Expression<Func<T, bool>> columns)
|
public IUpdateable<T> SetColumns(Expression<Func<T, bool>> columns)
|
||||||
{
|
{
|
||||||
ThrowUpdateByObject();
|
ThrowUpdateByObject();
|
||||||
CheckTranscodeing();
|
|
||||||
var binaryExp = columns.Body as BinaryExpression;
|
var binaryExp = columns.Body as BinaryExpression;
|
||||||
Check.Exception(!binaryExp.NodeType.IsIn(ExpressionType.Equal), "No support {0}", columns.ToString());
|
Check.Exception(!binaryExp.NodeType.IsIn(ExpressionType.Equal), "No support {0}", columns.ToString());
|
||||||
Check.Exception(!(binaryExp.Left is MemberExpression) && !(binaryExp.Left is UnaryExpression), "No support {0}", columns.ToString());
|
Check.Exception(!(binaryExp.Left is MemberExpression) && !(binaryExp.Left is UnaryExpression), "No support {0}", columns.ToString());
|
||||||
@@ -327,6 +327,12 @@ namespace SqlSugar
|
|||||||
expResult = Regex.Split(expResult, " IS NULL ")[0]+" = NULL ";
|
expResult = Regex.Split(expResult, " IS NULL ")[0]+" = NULL ";
|
||||||
}
|
}
|
||||||
string key = SqlBuilder.GetNoTranslationColumnName(expResult);
|
string key = SqlBuilder.GetNoTranslationColumnName(expResult);
|
||||||
|
|
||||||
|
if (EntityInfo.Columns.Where(it=>it.IsJson||it.IsTranscoding).Any(it => it.DbColumnName.EqualCase(key) || it.PropertyName.EqualCase(key)))
|
||||||
|
{
|
||||||
|
CheckTranscodeing();
|
||||||
|
}
|
||||||
|
|
||||||
UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(SqlBuilder.GetTranslationColumnName(key), expResult));
|
UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(SqlBuilder.GetTranslationColumnName(key), expResult));
|
||||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => (UpdateParameterIsNull == false && IsPrimaryKey(it)) || UpdateBuilder.SetValues.Any(v => SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase) || SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey == true).ToList();
|
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => (UpdateParameterIsNull == false && IsPrimaryKey(it)) || UpdateBuilder.SetValues.Any(v => SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase) || SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey == true).ToList();
|
||||||
AppendSets();
|
AppendSets();
|
||||||
|
@@ -55,7 +55,17 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return errorValue;
|
return errorValue;
|
||||||
}
|
}
|
||||||
|
public static bool EqualCase(this string thisValue,string equalValue)
|
||||||
|
{
|
||||||
|
if ( thisValue!=null && equalValue != null)
|
||||||
|
{
|
||||||
|
return thisValue.ToLower() == equalValue.ToLower();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return thisValue == equalValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
public static string ObjToString(this object thisValue)
|
public static string ObjToString(this object thisValue)
|
||||||
{
|
{
|
||||||
if (thisValue != null) return thisValue.ToString().Trim();
|
if (thisValue != null) return thisValue.ToString().Trim();
|
||||||
|
Reference in New Issue
Block a user