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;
|
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)
|
public ISaveable<T> InsertIgnoreColumns(Expression<Func<T, object>> columns)
|
||||||
{
|
{
|
||||||
LoadInsertable();
|
LoadInsertable();
|
||||||
|
@ -211,6 +211,12 @@ namespace SqlSugar
|
|||||||
return this;
|
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)
|
public IUpdateable<T> UpdateColumns(Func<string, bool> updateColumMethod)
|
||||||
{
|
{
|
||||||
List<string> primaryKeys = GetPrimaryKeys();
|
List<string> primaryKeys = GetPrimaryKeys();
|
||||||
|
@ -20,7 +20,51 @@ namespace SqlSugar
|
|||||||
case ResolveExpressType.SelectMultiple:
|
case ResolveExpressType.SelectMultiple:
|
||||||
case ResolveExpressType.FieldSingle:
|
case ResolveExpressType.FieldSingle:
|
||||||
case ResolveExpressType.FieldMultiple:
|
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;
|
break;
|
||||||
case ResolveExpressType.ArraySingle:
|
case ResolveExpressType.ArraySingle:
|
||||||
foreach (var item in expression.Expressions)
|
foreach (var item in expression.Expressions)
|
||||||
|
@ -15,5 +15,6 @@ namespace SqlSugar
|
|||||||
ISaveable<T> InsertIgnoreColumns(Expression<Func<T, object>> columns);
|
ISaveable<T> InsertIgnoreColumns(Expression<Func<T, object>> columns);
|
||||||
ISaveable<T> UpdateColumns(Expression<Func<T, object>> columns);
|
ISaveable<T> UpdateColumns(Expression<Func<T, object>> columns);
|
||||||
ISaveable<T> UpdateIgnoreColumns(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, object>> columns);
|
||||||
IUpdateable<T> UpdateColumns(Expression<Func<T, bool>> columns);
|
IUpdateable<T> UpdateColumns(Expression<Func<T, bool>> columns);
|
||||||
IUpdateable<T> UpdateColumns(Func<string, bool> updateColumMethod);
|
IUpdateable<T> UpdateColumns(Func<string, bool> updateColumMethod);
|
||||||
|
IUpdateable<T> UpdateColumns(string[] columns);
|
||||||
IUpdateable<T> UpdateColumns(Expression<Func<T, T>> 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, object>> columns);
|
||||||
IUpdateable<T> UpdateColumnsIF(bool isUpdateColumns,Expression<Func<T, bool>> columns);
|
IUpdateable<T> UpdateColumnsIF(bool isUpdateColumns,Expression<Func<T, bool>> columns);
|
||||||
|
Loading…
Reference in New Issue
Block a user