This commit is contained in:
sunkaixuan 2017-01-08 15:41:54 +08:00
parent ffe83f16c3
commit cafc76483a
3 changed files with 26 additions and 8 deletions

Binary file not shown.

View File

@ -5,11 +5,28 @@ using System.Linq.Expressions;
using System.Text; using System.Text;
namespace SqlSugar namespace SqlSugar
{ {
public class ConstantExpressionResolve:BaseResolve public class ConstantExpressionResolve : BaseResolve
{ {
public ConstantExpressionResolve(ExpressionParameter parameter) : base(parameter) public ConstantExpressionResolve(ExpressionParameter parameter) : base(parameter)
{ {
var expression = base.Expression as MemberExpression;
var isLeft = parameter.IsLeft;
var isSingle = parameter.Context.IsSingle;
string value = string.Empty;
if (parameter.BaseParameter.BinaryExpressionInfoList != null)
{
parameter.BaseParameter.BinaryExpressionInfoList.Add(new KeyValuePair<string, BinaryExpressionInfo>(ExpressionConst.BinaryExpressionInfoListKey, new BinaryExpressionInfo()
{
IsLeft = Convert.ToBoolean(IsLeft),
Value = value,
ExpressionType = expression.GetType()
}));
}
if (isLeft == null && base.SqlWhere == null)
{
base.SqlWhere = new StringBuilder();
base.SqlWhere.Append(value);
}
} }
} }
} }

View File

@ -14,12 +14,13 @@ namespace SqlSugar
var isSingle = parameter.Context.IsSingle; var isSingle = parameter.Context.IsSingle;
string fieldName = string.Empty; string fieldName = string.Empty;
fieldName = isSingle ? expression.Member.Name : expression.Member.ToString(); fieldName = isSingle ? expression.Member.Name : expression.Member.ToString();
parameter.BaseParameter.BinaryExpressionInfoList.Add(new KeyValuePair<string, BinaryExpressionInfo>(ExpressionConst.BinaryExpressionInfoListKey, new BinaryExpressionInfo() if (parameter.BaseParameter.BinaryExpressionInfoList != null)
{ parameter.BaseParameter.BinaryExpressionInfoList.Add(new KeyValuePair<string, BinaryExpressionInfo>(ExpressionConst.BinaryExpressionInfoListKey, new BinaryExpressionInfo()
IsLeft = Convert.ToBoolean(IsLeft), {
Value = fieldName, IsLeft = Convert.ToBoolean(IsLeft),
ExpressionType = expression.GetType() Value = fieldName,
})); ExpressionType = expression.GetType()
}));
if (isLeft == null && base.SqlWhere == null) if (isLeft == null && base.SqlWhere == null)
{ {
base.SqlWhere = new StringBuilder(); base.SqlWhere = new StringBuilder();