mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
Update Core
This commit is contained in:
parent
7f5aa7c127
commit
3c62f17445
@ -120,6 +120,20 @@ namespace SqlSugar
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISaveable<T> EnableDiffLogEvent(object businessData = null)
|
||||
{
|
||||
LoadInsertable();
|
||||
if (this.insertable != null)
|
||||
{
|
||||
this.insertable.EnableDiffLogEvent(businessData);
|
||||
}
|
||||
if (this.updateable != null)
|
||||
{
|
||||
this.updateable.EnableDiffLogEvent(businessData);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISaveable<T> InsertIgnoreColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
LoadInsertable();
|
||||
|
@ -211,6 +211,12 @@ namespace SqlSugar
|
||||
return this;
|
||||
}
|
||||
|
||||
public IUpdateable<T> UpdateColumns(string[] columns)
|
||||
{
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => columns.Contains(it.PropertyName, StringComparer.OrdinalIgnoreCase)).ToList();
|
||||
return this;
|
||||
}
|
||||
|
||||
public IUpdateable<T> UpdateColumns(Func<string, bool> updateColumMethod)
|
||||
{
|
||||
List<string> primaryKeys = GetPrimaryKeys();
|
||||
|
@ -20,7 +20,51 @@ namespace SqlSugar
|
||||
case ResolveExpressType.SelectMultiple:
|
||||
case ResolveExpressType.FieldSingle:
|
||||
case ResolveExpressType.FieldMultiple:
|
||||
Check.ThrowNotSupportedException("NewArrayExpression");
|
||||
try
|
||||
{
|
||||
var value = ExpressionTool.DynamicInvoke(expression);
|
||||
var isLeft = parameter.IsLeft;
|
||||
var baseParameter = parameter.BaseParameter;
|
||||
var isSetTempData = baseParameter.CommonTempData.HasValue() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
|
||||
if (isSetTempData)
|
||||
{
|
||||
baseParameter.CommonTempData = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
var parentIsBinary = parameter.BaseParameter.CurrentExpression is BinaryExpression;
|
||||
var parentIsRoot = parameter.BaseParameter.CurrentExpression is LambdaExpression;
|
||||
var isBool = value != null && value.GetType() == UtilConstants.BoolType;
|
||||
if (parentIsRoot && isBool)
|
||||
{
|
||||
this.Context.Result.Append(value.ObjToBool() ? this.Context.DbMehtods.True() : this.Context.DbMehtods.False());
|
||||
break;
|
||||
}
|
||||
if (parentIsBinary && isBool)
|
||||
{
|
||||
var isLogicOperator =
|
||||
parameter.BaseExpression.NodeType == ExpressionType.And ||
|
||||
parameter.BaseExpression.NodeType == ExpressionType.AndAlso ||
|
||||
parameter.BaseExpression.NodeType == ExpressionType.Or ||
|
||||
parameter.BaseExpression.NodeType == ExpressionType.OrElse;
|
||||
if (isLogicOperator)
|
||||
{
|
||||
AppendMember(parameter, isLeft, (value.ObjToBool() ? this.Context.DbMehtods.True() : this.Context.DbMehtods.False()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (value == null && parentIsBinary)
|
||||
{
|
||||
parameter.BaseParameter.ValueIsNull = true;
|
||||
value = this.Context.DbMehtods.Null();
|
||||
}
|
||||
AppendValue(parameter, isLeft, value);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Check.ThrowNotSupportedException("NewArrayExpression");
|
||||
}
|
||||
break;
|
||||
case ResolveExpressType.ArraySingle:
|
||||
foreach (var item in expression.Expressions)
|
||||
|
@ -15,5 +15,6 @@ namespace SqlSugar
|
||||
ISaveable<T> InsertIgnoreColumns(Expression<Func<T, object>> columns);
|
||||
ISaveable<T> UpdateColumns(Expression<Func<T, object>> columns);
|
||||
ISaveable<T> UpdateIgnoreColumns(Expression<Func<T, object>> columns);
|
||||
ISaveable<T> EnableDiffLogEvent(object businessData = null);
|
||||
}
|
||||
}
|
||||
|
@ -41,6 +41,7 @@ namespace SqlSugar
|
||||
IUpdateable<T> UpdateColumns(Expression<Func<T, object>> columns);
|
||||
IUpdateable<T> UpdateColumns(Expression<Func<T, bool>> columns);
|
||||
IUpdateable<T> UpdateColumns(Func<string, bool> updateColumMethod);
|
||||
IUpdateable<T> UpdateColumns(string[] columns);
|
||||
IUpdateable<T> UpdateColumns(Expression<Func<T, T>> columns);
|
||||
IUpdateable<T> UpdateColumnsIF(bool isUpdateColumns,Expression<Func<T, object>> columns);
|
||||
IUpdateable<T> UpdateColumnsIF(bool isUpdateColumns,Expression<Func<T, bool>> columns);
|
||||
|
Loading…
Reference in New Issue
Block a user