mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-18 17:48:11 +08:00
-
This commit is contained in:
@@ -21,7 +21,7 @@ namespace OrmTest.UnitTest
|
||||
base.Begin();
|
||||
for (int i = 0; i < base.Count; i++)
|
||||
{
|
||||
|
||||
whereSingle24();
|
||||
whereSingle23();
|
||||
whereSingle22();
|
||||
whereSingle21();
|
||||
@@ -378,6 +378,18 @@ namespace OrmTest.UnitTest
|
||||
new SugarParameter("@Const0",val)
|
||||
}, "whereSingle23");
|
||||
}
|
||||
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");
|
||||
}
|
||||
}
|
||||
|
||||
public class WhereConst
|
||||
|
@@ -21,6 +21,7 @@ namespace SqlSugar
|
||||
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";
|
||||
if (isLength)
|
||||
{
|
||||
var oldCommonTempDate = parameter.CommonTempData;
|
||||
@@ -39,11 +40,12 @@ namespace SqlSugar
|
||||
parameter.CommonTempData = oldCommonTempDate;
|
||||
return;
|
||||
}
|
||||
else if (isHasValue) {
|
||||
else if (isHasValue)
|
||||
{
|
||||
parameter.CommonTempData = CommonTempDataType.Result;
|
||||
this.Expression = expression.Expression;
|
||||
this.Start();
|
||||
var methodParamter =new MethodCallExpressionArgs() { IsMember = true, MemberName = parameter.CommonTempData, MemberValue = null };
|
||||
var methodParamter = new MethodCallExpressionArgs() { IsMember = true, MemberName = parameter.CommonTempData, MemberValue = null };
|
||||
var result = this.Context.DbMehtods.HasValue(new MethodCallExpressionModel()
|
||||
{
|
||||
Args = new List<MethodCallExpressionArgs>() {
|
||||
@@ -81,6 +83,11 @@ namespace SqlSugar
|
||||
{
|
||||
expression = expression.Expression as MemberExpression;
|
||||
}
|
||||
else if (isDateTimeNowDate)
|
||||
{
|
||||
AppendValue(parameter, isLeft, DateTime.Now.Date);
|
||||
return;
|
||||
}
|
||||
else if (expression.Expression != null && expression.Expression.NodeType != ExpressionType.Parameter && !isValueBool)
|
||||
{
|
||||
var value = ExpressionTool.GetMemberValue(expression.Member, expression);
|
||||
|
Reference in New Issue
Block a user