Update exp to sql

This commit is contained in:
sunkaixuan 2019-05-28 18:46:44 +08:00
parent d670f1d16b
commit f922b9ba53
2 changed files with 15 additions and 0 deletions

View File

@ -28,6 +28,8 @@ namespace OrmTest
Db.CodeFirst.InitTables<GuidTable>(); Db.CodeFirst.InitTables<GuidTable>();
Db.Queryable<GuidTable>().Where(it => it.Id.HasValue).ToList(); Db.Queryable<GuidTable>().Where(it => it.Id.HasValue).ToList();
Db.Queryable<Order>().Where(it => SqlSugar.SqlFunc.Equals(it.CreateTime.Date, it.CreateTime.Date)).ToList();
} }

View File

@ -413,6 +413,10 @@ namespace SqlSugar
{ {
parameter.CommonTempData = DateTime.Now.Date; parameter.CommonTempData = DateTime.Now.Date;
} }
else if (IsDateDate(item))
{
parameter.CommonTempData = GetNewExpressionValue(item);
}
else if (model.Name == "ToString" && item is ConstantExpression && (item as ConstantExpression).Type.IsEnum()) else if (model.Name == "ToString" && item is ConstantExpression && (item as ConstantExpression).Type.IsEnum())
{ {
parameter.CommonTempData = item.ToString(); parameter.CommonTempData = item.ToString();
@ -439,6 +443,10 @@ namespace SqlSugar
methodCallExpressionArgs.IsMember = false; methodCallExpressionArgs.IsMember = false;
} }
} }
if (IsDateDate(item))
{
methodCallExpressionArgs.IsMember = true;
}
if (methodCallExpressionArgs.IsMember == false && (item is MethodCallExpression && item.ToString() == "GetDate()") || (item is UnaryExpression && ((UnaryExpression)item).Operand.ToString() == "GetDate()")) if (methodCallExpressionArgs.IsMember == false && (item is MethodCallExpression && item.ToString() == "GetDate()") || (item is UnaryExpression && ((UnaryExpression)item).Operand.ToString() == "GetDate()"))
{ {
var parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.MethodConst + this.Context.ParameterIndex; var parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.MethodConst + this.Context.ParameterIndex;
@ -458,6 +466,11 @@ namespace SqlSugar
parameter.ChildExpression = null; parameter.ChildExpression = null;
} }
private static bool IsDateDate(Expression item)
{
return item.Type == UtilConstants.DateType && item is MemberExpression && (item as MemberExpression).Member.Name == "Date";
}
private object GetMethodValue(string name, MethodCallExpressionModel model) private object GetMethodValue(string name, MethodCallExpressionModel model)
{ {
if (IsExtMethod(name)) if (IsExtMethod(name))