mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-22 20:13:41 +08:00
Support date.DayOfWeek
This commit is contained in:
@@ -18,6 +18,7 @@ namespace OrmTest
|
||||
var x2 = db.Queryable<Order>().Select(it => (DateTime.Now - SqlFunc.GetDate().AddDays(-1)).TotalHours).ToList();
|
||||
var x3 = db.Queryable<Order>().Select(it => (DateTime.Now - SqlFunc.GetDate().AddHours(-1)).TotalMinutes).ToList();
|
||||
var x4 = db.Queryable<Order>().Select(it => (DateTime.Now - SqlFunc.GetDate().AddMinutes(-1)).TotalSeconds).ToList();
|
||||
var x5 = db.Queryable<Order>().Select(it =>it.CreateTime.DayOfWeek).ToList();
|
||||
if (x1.Any())
|
||||
{
|
||||
Check.Exception(x1.First()!=365, "unit error . UCustom011");
|
||||
|
@@ -14,6 +14,7 @@ namespace SqlSugar
|
||||
Hour = 4,
|
||||
Second=5,
|
||||
Minute=6,
|
||||
Millisecond=7
|
||||
Millisecond=7,
|
||||
Weekday=8
|
||||
}
|
||||
}
|
||||
|
@@ -23,6 +23,10 @@ namespace SqlSugar
|
||||
else if (IsDateDiff(expression))
|
||||
{
|
||||
ResolveDateDiff(parameter, isLeft, expression);
|
||||
}
|
||||
else if (expression.Member.Name== "DayOfWeek"&& expression.Type==typeof(DayOfWeek))
|
||||
{
|
||||
ResolveDayOfWeek(parameter, isLeft, expression);
|
||||
}
|
||||
else if (isHasValue)
|
||||
{
|
||||
@@ -212,6 +216,28 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#region Resolve special member
|
||||
private void ResolveDayOfWeek(ExpressionParameter parameter, bool? isLeft, MemberExpression expression)
|
||||
{
|
||||
var exp = expression.Expression;
|
||||
var value = GetNewExpressionValue(exp);
|
||||
var result = this.Context.DbMehtods.DateValue(new MethodCallExpressionModel()
|
||||
{
|
||||
Args = new List<MethodCallExpressionArgs>() {
|
||||
|
||||
new MethodCallExpressionArgs(){
|
||||
MemberName=value,
|
||||
MemberValue=value
|
||||
},
|
||||
new MethodCallExpressionArgs(){
|
||||
MemberName=DateType.Weekday,
|
||||
MemberValue=DateType.Weekday
|
||||
}
|
||||
}
|
||||
}); ;
|
||||
base.AppendMember(parameter, isLeft, result);
|
||||
}
|
||||
|
||||
|
||||
private void ResolveDateDiff(ExpressionParameter parameter, bool? isLeft, MemberExpression expression)
|
||||
{
|
||||
var binaryExp=expression.Expression as BinaryExpression;
|
||||
|
Reference in New Issue
Block a user