This commit is contained in:
sunkaixuan 2017-08-13 01:19:15 +08:00
parent c3ee54a77c
commit 9ab46b3132
4 changed files with 41 additions and 20 deletions

View File

@ -182,6 +182,8 @@ namespace OrmTest.Demo
var getTodayList = db.Queryable<Student>().Where(it => SqlFunc.DateIsSame(it.CreateTime, DateTime.Now)).ToList(); var getTodayList = db.Queryable<Student>().Where(it => SqlFunc.DateIsSame(it.CreateTime, DateTime.Now)).ToList();
var joinSql = db.Queryable("student", "s").OrderBy("id").Select("id,name").ToPageList(1, 2); var joinSql = db.Queryable("student", "s").OrderBy("id").Select("id,name").ToPageList(1, 2);
var getDay1List = db.Queryable<Student>().Where(it=>it.CreateTime.Value.Hour==1).ToList();
} }
public static void Page() public static void Page()
{ {

View File

@ -17,23 +17,23 @@ namespace OrmTest
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
// /***Unit Test***/ //// /***Unit Test***/
new Select(1).Init(); //new Select(1).Init();
new Field(1).Init(); //new Field(1).Init();
new Where(1).Init(); //new Where(1).Init();
new Method(1).Init(); //new Method(1).Init();
new JoinQuery(1).Init(); //new JoinQuery(1).Init();
new SingleQuery(1).Init(); //new SingleQuery(1).Init();
new SelectQuery(1).Init(); //new SelectQuery(1).Init();
new AutoClose(1).Init(); //new AutoClose(1).Init();
new Insert(1).Init(); //new Insert(1).Init();
new Delete(1).Init(); //new Delete(1).Init();
new Update(1).Init(); //new Update(1).Init();
new Mapping(1).Init(); //new Mapping(1).Init();
new DataTest(1).Init(); //new DataTest(1).Init();
new EnumTest(1).Init(); //new EnumTest(1).Init();
/***Performance Test***/ ///***Performance Test***/
new SqlSugarPerformance(100).Select(); //new SqlSugarPerformance(100).Select();
/***Demo***/ /***Demo***/
OrmTest.Demo.Query.Init(); OrmTest.Demo.Query.Init();

View File

@ -153,7 +153,7 @@ namespace SqlSugar
{ {
var parameter = model.Args[0]; var parameter = model.Args[0];
var parameter2 = model.Args[1]; var parameter2 = model.Args[1];
return string.Format(" ({0}({1})) ", parameter2.MemberName, parameter.MemberName); return string.Format(" DateName({0},{1}) ", parameter2.MemberName, parameter.MemberName);
} }
public virtual string ToInt32(MethodCallExpressionModel model) public virtual string ToInt32(MethodCallExpressionModel model)

View File

@ -18,14 +18,15 @@ namespace SqlSugar
var isBool = expression.Type == PubConst.BoolType; var isBool = expression.Type == PubConst.BoolType;
var isValueBool = isValue && isBool && parameter.BaseExpression == null; var isValueBool = isValue && isBool && parameter.BaseExpression == null;
var isLength = expression.Member.Name == "Length" && (expression.Expression as MemberExpression).Type == PubConst.StringType; var isLength = expression.Member.Name == "Length" && (expression.Expression as MemberExpression).Type == PubConst.StringType;
var isDateValue = expression.Member.Name.IsIn(Enum.GetNames(typeof(DateType))) && (expression.Expression as MemberExpression).Type == PubConst.DateType;
if (isLength) if (isLength)
{ {
var oldCommonTempDate = parameter.CommonTempData; var oldCommonTempDate = parameter.CommonTempData;
parameter.CommonTempData = CommonTempDataType.Result; parameter.CommonTempData = CommonTempDataType.Result;
this.Expression = expression.Expression; this.Expression = expression.Expression;
var isConst=this.Expression is ConstantExpression; var isConst = this.Expression is ConstantExpression;
this.Start(); this.Start();
var methodParamter = new MethodCallExpressionArgs() { IsMember = !isConst, MemberName = parameter.CommonTempData, MemberValue = null }; var methodParamter = new MethodCallExpressionArgs() { IsMember = !isConst, MemberName = parameter.CommonTempData, MemberValue = null };
var result = this.Context.DbMehtods.Length(new MethodCallExpressionModel() var result = this.Context.DbMehtods.Length(new MethodCallExpressionModel()
{ {
Args = new List<MethodCallExpressionArgs>() { Args = new List<MethodCallExpressionArgs>() {
@ -36,6 +37,24 @@ namespace SqlSugar
parameter.CommonTempData = oldCommonTempDate; parameter.CommonTempData = oldCommonTempDate;
return; return;
} }
else if (isDateValue) {
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;
return;
}
else if (isValueBool) else if (isValueBool)
{ {
isValue = false; isValue = false;