This commit is contained in:
sunkaixuan
2017-01-08 23:15:30 +08:00
parent 6dff7607a5
commit c342f11fe8
16 changed files with 13 additions and 15 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -156,5 +156,16 @@ namespace SqlSugar
}
return reval;
}
public static object DynamicInvoke(MemberExpression expression)
{
object value = Expression.Lambda(expression).Compile().DynamicInvoke();
if (value != null && value.GetType().IsClass && value.GetType() != ExpressionConst.StringType)
{
value = Expression.Lambda(expression).Compile().DynamicInvoke();
}
return value;
}
}
}

View File

@@ -14,16 +14,7 @@ namespace SqlSugar
var isLeft = parameter.IsLeft;
var isWhereSingle = parameter.Context.IsWhereSingle;
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);
}
else if (isProperty)
{
value = ExpressionTool.GetPropertyValue(expression.Expression as MemberExpression);
}
value = ExpressionTool.DynamicInvoke(expression);
if (parameter.BaseParameter.BinaryExpressionInfoList != null)
{
parameter.BaseParameter.BinaryExpressionInfoList.Add(new KeyValuePair<string, BinaryExpressionInfo>(ExpressionConst.BinaryExpressionInfoListKey, new BinaryExpressionInfo()
@@ -33,11 +24,6 @@ namespace SqlSugar
ExpressionType = ExpressionConst.ConstantExpressionType
}));
}
if (isLeft == null && base.Context.SqlWhere == null)
{
base.Context.SqlWhere = new StringBuilder();
base.Context.SqlWhere.Append(value);
}
}
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -3,3 +3,4 @@ F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\bin\Debug\SqlSugar.pdb
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\bin\Debug\Newtonsoft.Json.dll
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\obj\Debug\SqlSugar.dll
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\obj\Debug\SqlSugar.pdb
F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\SqlSugar\obj\Debug\SqlSugar.csprojResolveAssemblyReference.cache

Binary file not shown.

Binary file not shown.