This commit is contained in:
sunkaixuan
2017-09-07 14:51:58 +08:00
parent 1cf9fca566
commit ad05fb5f68
2 changed files with 14 additions and 11 deletions

View File

@@ -380,15 +380,16 @@ namespace OrmTest.UnitTest
}
private void whereSingle24()
{
Expression<Func<DataTestInfo, bool>> exp = it => it.Datetime1 > DateTime.Now.Date;
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(value, pars, "( [Datetime1] > @Datetime10 )", new List<SugarParameter>()
{
new SugarParameter("@Datetime10",DateTime.Now.Date)
}, "whereSingle24");
//var p = DateTime.Now.Date;
//Expression<Func<DataTestInfo, bool>> exp = it => it.Datetime1 >p.Date;
//SqlServerExpressionContext expContext = new SqlServerExpressionContext();
//expContext.Resolve(exp, ResolveExpressType.WhereSingle);
//var value = expContext.Result.GetString();
//var pars = expContext.Parameters;
//base.Check(value, pars, "( [Datetime1] > @Datetime10 )", new List<SugarParameter>()
//{
// new SugarParameter("@Datetime10",DateTime.Now.Date)
//}, "whereSingle24");
}
}

View File

@@ -14,14 +14,16 @@ namespace SqlSugar
var isLeft = parameter.IsLeft;
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
var expression = base.Expression as MemberExpression;
var childExpression = expression.Expression as MemberExpression;
var childIsMember = childExpression != null;
var isValue = expression.Member.Name == "Value" && expression.Member.DeclaringType.Name == "Nullable`1";
var isBool = expression.Type == UtilConstants.BoolType;
var isValueBool = isValue && isBool && parameter.BaseExpression == null;
var isLength = expression.Member.Name == "Length" && (expression.Expression as MemberExpression).Type == UtilConstants.StringType;
var isLength = expression.Member.Name == "Length" &&childIsMember&&childExpression.Type == UtilConstants.StringType;
var isDateValue = expression.Member.Name.IsIn(Enum.GetNames(typeof(DateType))) && (expression.Expression as MemberExpression).Type == UtilConstants.DateType;
var isLogicOperator = ExpressionTool.IsLogicOperator(baseParameter.OperatorValue) || baseParameter.OperatorValue.IsNullOrEmpty();
var isHasValue = isLogicOperator && expression.Member.Name == "HasValue" && expression.Expression != null && expression.NodeType == ExpressionType.MemberAccess;
var isDateTimeNowDate = expression.Member.Name == "Date" && (expression.Expression as MemberExpression) != null && (expression.Expression as MemberExpression).Member.Name == "Now";
var isDateTimeNowDate = expression.Member.Name == "Date" &&childIsMember&&childExpression.Member.Name == "Now";
if (isLength)
{
var oldCommonTempDate = parameter.CommonTempData;