mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-23 20:43:46 +08:00
Synchronization code
This commit is contained in:
@@ -145,6 +145,10 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
this.Context.Parameters.Add(new SugarParameter(appendValue, new SerializeService().SerializeObject(value)) { IsJson=true});
|
this.Context.Parameters.Add(new SugarParameter(appendValue, new SerializeService().SerializeObject(value)) { IsJson=true});
|
||||||
}
|
}
|
||||||
|
else if (parameter?.BaseParameter?.CommonTempData.ObjToString() == "IsArray=true")
|
||||||
|
{
|
||||||
|
this.Context.Parameters.Add(new SugarParameter(appendValue, value) { IsArray = true });
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.Context.Parameters.Add(new SugarParameter(appendValue, value));
|
this.Context.Parameters.Add(new SugarParameter(appendValue, value));
|
||||||
|
@@ -50,11 +50,35 @@ namespace SqlSugar
|
|||||||
DefaultBinary(parameter, expression, operatorValue);
|
DefaultBinary(parameter, expression, operatorValue);
|
||||||
parameter.CommonTempData = null;
|
parameter.CommonTempData = null;
|
||||||
}
|
}
|
||||||
|
else if (IsUpdateArray(parameter, expression, operatorValue))
|
||||||
|
{
|
||||||
|
parameter.CommonTempData = "IsArray=true";
|
||||||
|
DefaultBinary(parameter, expression, operatorValue);
|
||||||
|
parameter.CommonTempData = null;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DefaultBinary(parameter, expression, operatorValue);
|
DefaultBinary(parameter, expression, operatorValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private bool IsUpdateArray(ExpressionParameter parameter, BinaryExpression expression, string operatorValue)
|
||||||
|
{
|
||||||
|
var isOk = parameter.Context.ResolveType == ResolveExpressType.WhereSingle && operatorValue == "=" && (expression.Left is MemberExpression) && expression.Left.Type.IsClass();
|
||||||
|
if (isOk && this.Context.SugarContext != null)
|
||||||
|
{
|
||||||
|
var member = (expression.Left as MemberExpression);
|
||||||
|
if (member.Expression != null)
|
||||||
|
{
|
||||||
|
var entity = this.Context.SugarContext.Context.EntityMaintenance.GetEntityInfo(member.Expression.Type);
|
||||||
|
var jsonColumn = entity.Columns.FirstOrDefault(it => it.IsArray && it.PropertyName == ExpressionTool.GetMemberName(expression.Left));
|
||||||
|
if (jsonColumn != null)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private bool IsUpdateJson(ExpressionParameter parameter,BinaryExpression expression, string operatorValue)
|
private bool IsUpdateJson(ExpressionParameter parameter,BinaryExpression expression, string operatorValue)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user