mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-06-28 13:34:32 +08:00
44 lines
1.7 KiB
C#
44 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace SqlSugar
|
|
{
|
|
public class MemberNewExpressionResolve : BaseResolve
|
|
{
|
|
public MemberNewExpressionResolve(ExpressionParameter parameter) : base(parameter) {
|
|
var expression = base.Expression as MemberExpression;
|
|
var isLeft = parameter.IsLeft;
|
|
var isSingle = parameter.Context.IsSingle;
|
|
object value = null;
|
|
var isField = expression.Member is System.Reflection.FieldInfo;
|
|
var isProperty = expression.Member is System.Reflection.PropertyInfo;
|
|
if (isField)
|
|
{
|
|
value = ExpressionTool.GetFiledValue(expression.Expression as MemberExpression);
|
|
}
|
|
else if (isProperty)
|
|
{
|
|
value = ExpressionTool.GetPropertyValue(expression.Expression as MemberExpression);
|
|
}
|
|
if (parameter.BaseParameter.BinaryExpressionInfoList != null)
|
|
{
|
|
parameter.BaseParameter.BinaryExpressionInfoList.Add(new KeyValuePair<string, BinaryExpressionInfo>(ExpressionConst.BinaryExpressionInfoListKey, new BinaryExpressionInfo()
|
|
{
|
|
IsLeft = Convert.ToBoolean(isLeft),
|
|
Value = value,
|
|
ExpressionType = ExpressionConst.ConstantExpressionType
|
|
}));
|
|
}
|
|
if (isLeft == null && base.Context.SqlWhere == null)
|
|
{
|
|
base.Context.SqlWhere = new StringBuilder();
|
|
base.Context.SqlWhere.Append(value);
|
|
}
|
|
}
|
|
}
|
|
}
|