This commit is contained in:
sunkaixuan
2017-07-17 01:49:09 +08:00
parent 9c13db328a
commit 219130550d
8 changed files with 18 additions and 11 deletions

View File

@@ -3,8 +3,6 @@ using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
namespace SqlSugar
{
public class InsertBuilder : IDMLBuilder

View File

@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
namespace SqlSugar

View File

@@ -46,6 +46,16 @@ namespace SqlSugar
return null;
}
}
public static object GetValue(object value)
{
if (value == null) return value;
var type = value.GetType();
if (type.IsEnum()&& type != typeof(DateType)&& type!=typeof(JoinType)&&type!=typeof(OrderByType)) return Convert.ToInt64(value);
else
return value;
}
public static bool IsLogicOperator(string operatorValue)
{
return operatorValue == "&&" || operatorValue == "||";
@@ -67,6 +77,7 @@ namespace SqlSugar
}
public static object GetMemberValue(MemberInfo member, Expression expression)
{
var rootExpression = expression as MemberExpression;
var memberInfos = new Stack<MemberInfo>();
var fieldInfo = member as System.Reflection.FieldInfo;
object reval = null;
@@ -106,7 +117,7 @@ namespace SqlSugar
var objProp = objReference.GetType().GetProperty(mi.Name);
if (objProp == null)
{
objReference = DynamicInvoke(expression,memberExpr);
objReference = DynamicInvoke(expression, rootExpression==null?memberExpr: rootExpression);
}
else
{
@@ -118,7 +129,7 @@ namespace SqlSugar
var objField = objReference.GetType().GetField(mi.Name);
if (objField == null)
{
objReference = DynamicInvoke(expression, memberExpr);
objReference = DynamicInvoke(expression, rootExpression==null?memberExpr: rootExpression);
}
else
{

View File

@@ -12,7 +12,7 @@ namespace SqlSugar
{
var expression = base.Expression as ConstantExpression;
var isLeft = parameter.IsLeft;
object value = expression.Value;
object value = ExpressionTool.GetValue(expression.Value);
var baseParameter = parameter.BaseParameter;
baseParameter.ChildExpression = expression;
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);

View File

@@ -14,7 +14,7 @@ namespace SqlSugar
var isLeft = parameter.IsLeft;
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
var expression = base.Expression as MemberExpression;
var isValue = expression.Member.Name == "Value" && expression.Member.GetType().Name == "RuntimePropertyInfo";
var isValue = expression.Member.Name == "Value" && expression.Member.DeclaringType.Name == "Nullable`1";
var isBool = expression.Type == PubConst.BoolType;
var isValueBool = isValue && isBool && parameter.BaseExpression == null;
if (isValueBool)

View File

@@ -17,5 +17,5 @@ using System.Runtime.InteropServices;
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1c022a5c-4e4d-4026-a8a3-f659b9740a1a")]
[assembly: AssemblyVersion("4.2.0.7")]
[assembly: AssemblyFileVersion("4.2.0.7")]
[assembly: AssemblyVersion("4.2.0.9")]
[assembly: AssemblyFileVersion("4.2.0.9")]

View File

@@ -1,5 +1,4 @@
using System;
using System.Reflection;
namespace SqlSugar
{

View File

@@ -2,7 +2,7 @@
<package >
<metadata>
<id>sqlSugarCore</id>
<version>4.2.0.7</version>
<version>4.2.0.9</version>
<authors>sunkaixuan</authors>
<owners>Landa</owners>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>