mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-03 20:27:56 +08:00
Optimized code
This commit is contained in:
parent
9326865a7d
commit
07e6a2dcc3
@ -27,55 +27,17 @@ namespace SqlSugar
|
|||||||
var isDateDate = expression.Member.Name == "Date" && expression.Expression.Type == UtilConstants.DateType;
|
var isDateDate = expression.Member.Name == "Date" && expression.Expression.Type == UtilConstants.DateType;
|
||||||
if (isLength)
|
if (isLength)
|
||||||
{
|
{
|
||||||
var oldCommonTempDate = parameter.CommonTempData;
|
ResolveLength(parameter, isLeft, expression);
|
||||||
parameter.CommonTempData = CommonTempDataType.Result;
|
|
||||||
this.Expression = expression.Expression;
|
|
||||||
var isConst = this.Expression is ConstantExpression;
|
|
||||||
this.Start();
|
|
||||||
var methodParamter = new MethodCallExpressionArgs() { IsMember = !isConst, MemberName = parameter.CommonTempData, MemberValue = null };
|
|
||||||
var result = this.Context.DbMehtods.Length(new MethodCallExpressionModel()
|
|
||||||
{
|
|
||||||
Args = new List<MethodCallExpressionArgs>() {
|
|
||||||
methodParamter
|
|
||||||
}
|
|
||||||
});
|
|
||||||
base.AppendMember(parameter, isLeft, result);
|
|
||||||
parameter.CommonTempData = oldCommonTempDate;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (isHasValue)
|
else if (isHasValue)
|
||||||
{
|
{
|
||||||
parameter.CommonTempData = CommonTempDataType.Result;
|
ResolveHasValue(parameter, expression);
|
||||||
this.Expression = expression.Expression;
|
|
||||||
this.Start();
|
|
||||||
var methodParamter = new MethodCallExpressionArgs() { IsMember = true, MemberName = parameter.CommonTempData, MemberValue = null };
|
|
||||||
var result = this.Context.DbMehtods.HasValue(new MethodCallExpressionModel()
|
|
||||||
{
|
|
||||||
Args = new List<MethodCallExpressionArgs>() {
|
|
||||||
methodParamter
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.Context.Result.Append(result);
|
|
||||||
parameter.CommonTempData = null;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (isDateValue)
|
else if (isDateValue)
|
||||||
{
|
{
|
||||||
var name = expression.Member.Name;
|
ResolveDateValue(parameter, isLeft, expression);
|
||||||
var oldCommonTempDate = parameter.CommonTempData;
|
|
||||||
parameter.CommonTempData = CommonTempDataType.Result;
|
|
||||||
this.Expression = expression.Expression;
|
|
||||||
var isConst = this.Expression is ConstantExpression;
|
|
||||||
this.Start();
|
|
||||||
var result = this.Context.DbMehtods.DateValue(new MethodCallExpressionModel()
|
|
||||||
{
|
|
||||||
Args = new List<MethodCallExpressionArgs>() {
|
|
||||||
new MethodCallExpressionArgs() { IsMember = !isConst, MemberName = parameter.CommonTempData, MemberValue = null },
|
|
||||||
new MethodCallExpressionArgs() { IsMember = true, MemberName = name, MemberValue = name }
|
|
||||||
}
|
|
||||||
});
|
|
||||||
base.AppendMember(parameter, isLeft, result);
|
|
||||||
parameter.CommonTempData = oldCommonTempDate;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (isValueBool)
|
else if (isValueBool)
|
||||||
@ -88,33 +50,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else if (isDateDate)
|
else if (isDateDate)
|
||||||
{
|
{
|
||||||
var name = expression.Member.Name;
|
ResolveDateDate(parameter, isLeft, expression);
|
||||||
var oldCommonTempDate = parameter.CommonTempData;
|
|
||||||
parameter.CommonTempData = CommonTempDataType.Result;
|
|
||||||
this.Expression = expression.Expression;
|
|
||||||
this.Start();
|
|
||||||
var isConst = parameter.CommonTempData.GetType() == UtilConstants.DateType;
|
|
||||||
if (isConst)
|
|
||||||
{
|
|
||||||
AppendValue(parameter, isLeft, parameter.CommonTempData.ObjToDate().Date);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var GetYear = new MethodCallExpressionModel()
|
|
||||||
{
|
|
||||||
Args = new List<MethodCallExpressionArgs>() {
|
|
||||||
new MethodCallExpressionArgs() { IsMember=true, MemberName=parameter.CommonTempData, MemberValue=parameter.CommonTempData },
|
|
||||||
new MethodCallExpressionArgs() { MemberName=DateType.Year, MemberValue=DateType.Year}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
AppendMember(parameter, isLeft, GetToDate(this.Context.DbMehtods.MergeString(
|
|
||||||
this.GetDateValue(parameter.CommonTempData, DateType.Year),
|
|
||||||
"+'-'+",
|
|
||||||
this.GetDateValue(parameter.CommonTempData, DateType.Month),
|
|
||||||
"+'-'+",
|
|
||||||
this.GetDateValue(parameter.CommonTempData, DateType.Day))));
|
|
||||||
}
|
|
||||||
parameter.CommonTempData = oldCommonTempDate;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (isDateTimeNowDate)
|
else if (isDateTimeNowDate)
|
||||||
@ -210,6 +146,90 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ResolveDateDate(ExpressionParameter parameter, bool? isLeft, MemberExpression expression)
|
||||||
|
{
|
||||||
|
var name = expression.Member.Name;
|
||||||
|
var oldCommonTempDate = parameter.CommonTempData;
|
||||||
|
parameter.CommonTempData = CommonTempDataType.Result;
|
||||||
|
this.Expression = expression.Expression;
|
||||||
|
this.Start();
|
||||||
|
var isConst = parameter.CommonTempData.GetType() == UtilConstants.DateType;
|
||||||
|
if (isConst)
|
||||||
|
{
|
||||||
|
AppendValue(parameter, isLeft, parameter.CommonTempData.ObjToDate().Date);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var GetYear = new MethodCallExpressionModel()
|
||||||
|
{
|
||||||
|
Args = new List<MethodCallExpressionArgs>() {
|
||||||
|
new MethodCallExpressionArgs() { IsMember=true, MemberName=parameter.CommonTempData, MemberValue=parameter.CommonTempData },
|
||||||
|
new MethodCallExpressionArgs() { MemberName=DateType.Year, MemberValue=DateType.Year}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
AppendMember(parameter, isLeft, GetToDate(this.Context.DbMehtods.MergeString(
|
||||||
|
this.GetDateValue(parameter.CommonTempData, DateType.Year),
|
||||||
|
"+'-'+",
|
||||||
|
this.GetDateValue(parameter.CommonTempData, DateType.Month),
|
||||||
|
"+'-'+",
|
||||||
|
this.GetDateValue(parameter.CommonTempData, DateType.Day))));
|
||||||
|
}
|
||||||
|
parameter.CommonTempData = oldCommonTempDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResolveDateValue(ExpressionParameter parameter, bool? isLeft, MemberExpression expression)
|
||||||
|
{
|
||||||
|
var name = expression.Member.Name;
|
||||||
|
var oldCommonTempDate = parameter.CommonTempData;
|
||||||
|
parameter.CommonTempData = CommonTempDataType.Result;
|
||||||
|
this.Expression = expression.Expression;
|
||||||
|
var isConst = this.Expression is ConstantExpression;
|
||||||
|
this.Start();
|
||||||
|
var result = this.Context.DbMehtods.DateValue(new MethodCallExpressionModel()
|
||||||
|
{
|
||||||
|
Args = new List<MethodCallExpressionArgs>() {
|
||||||
|
new MethodCallExpressionArgs() { IsMember = !isConst, MemberName = parameter.CommonTempData, MemberValue = null },
|
||||||
|
new MethodCallExpressionArgs() { IsMember = true, MemberName = name, MemberValue = name }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
base.AppendMember(parameter, isLeft, result);
|
||||||
|
parameter.CommonTempData = oldCommonTempDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResolveHasValue(ExpressionParameter parameter, MemberExpression expression)
|
||||||
|
{
|
||||||
|
parameter.CommonTempData = CommonTempDataType.Result;
|
||||||
|
this.Expression = expression.Expression;
|
||||||
|
this.Start();
|
||||||
|
var methodParamter = new MethodCallExpressionArgs() { IsMember = true, MemberName = parameter.CommonTempData, MemberValue = null };
|
||||||
|
var result = this.Context.DbMehtods.HasValue(new MethodCallExpressionModel()
|
||||||
|
{
|
||||||
|
Args = new List<MethodCallExpressionArgs>() {
|
||||||
|
methodParamter
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.Context.Result.Append(result);
|
||||||
|
parameter.CommonTempData = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResolveLength(ExpressionParameter parameter, bool? isLeft, MemberExpression expression)
|
||||||
|
{
|
||||||
|
var oldCommonTempDate = parameter.CommonTempData;
|
||||||
|
parameter.CommonTempData = CommonTempDataType.Result;
|
||||||
|
this.Expression = expression.Expression;
|
||||||
|
var isConst = this.Expression is ConstantExpression;
|
||||||
|
this.Start();
|
||||||
|
var methodParamter = new MethodCallExpressionArgs() { IsMember = !isConst, MemberName = parameter.CommonTempData, MemberValue = null };
|
||||||
|
var result = this.Context.DbMehtods.Length(new MethodCallExpressionModel()
|
||||||
|
{
|
||||||
|
Args = new List<MethodCallExpressionArgs>() {
|
||||||
|
methodParamter
|
||||||
|
}
|
||||||
|
});
|
||||||
|
base.AppendMember(parameter, isLeft, result);
|
||||||
|
parameter.CommonTempData = oldCommonTempDate;
|
||||||
|
}
|
||||||
|
|
||||||
private string AppendMember(ExpressionParameter parameter, bool? isLeft, string fieldName)
|
private string AppendMember(ExpressionParameter parameter, bool? isLeft, string fieldName)
|
||||||
{
|
{
|
||||||
if (parameter.BaseExpression is BinaryExpression || (parameter.BaseParameter.CommonTempData != null && parameter.BaseParameter.CommonTempData.Equals(CommonTempDataType.Append)))
|
if (parameter.BaseExpression is BinaryExpression || (parameter.BaseParameter.CommonTempData != null && parameter.BaseParameter.CommonTempData.Equals(CommonTempDataType.Append)))
|
||||||
@ -276,6 +296,7 @@ namespace SqlSugar
|
|||||||
};
|
};
|
||||||
return this.Context.DbMehtods.DateValue(pars);
|
return this.Context.DbMehtods.DateValue(pars);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetToDate(string value)
|
private string GetToDate(string value)
|
||||||
{
|
{
|
||||||
var pars = new MethodCallExpressionModel()
|
var pars = new MethodCallExpressionModel()
|
||||||
|
Loading…
Reference in New Issue
Block a user