ReSetValue 如何表达是枚举会提示 Expression format error 返回

求助
163

// SqlSugar.UpdateableProvider<T>
// Token: 0x0600080F RID: 2063 RVA: 0x000235B8 File Offset: 0x000217B8
public IUpdateable<T> ReSetValue(Expression<Func<T, bool>> setValueExpression)
{
    
Check.Exception(!this.IsSingle, "Batch operation not supported ReSetValue", Array.Empty<string>());
    
ExpressionResult expressionValue = this.UpdateBuilder.GetExpressionValue(setValueExpression, ResolveExpressType.WhereSingle, true);
    
string value = Regex.Match(expressionValue.GetResultString(), "\\((.+)\\)").Groups[1].Value;
    
Expression body = setValueExpression.Body;
    
Check.Exception(!(body is BinaryExpression), "Expression  format error", Array.Empty<string>());
    
Check.Exception((body as BinaryExpression).NodeType != ExpressionType.Equal, "Expression  format error", Array.Empty<string>());
    
Expression left = (body as BinaryExpression).Left;
    
Check.Exception(!(left is MemberExpression), "Expression  format error", Array.Empty<string>());
    
string @string = this.UpdateBuilder.GetExpressionValue(left, ResolveExpressType.FieldSingle, true).GetString();
    
this.UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(@string, value));
    
return this;
}



  ReSetValue<MerchantPayOrder>(it => it.Status == MerchantPayOrderStatus.Abnormal);

Status是枚举字段,然后这段代码就会报错了

 Check.Exception(!(left is MemberExpression), "Expression  format error", Array.Empty<string>());

热忱回答0

版块

学习文档

最新会员

发布达人

回贴达人