mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-27 03:09:34 +08:00
Update exp to sql
This commit is contained in:
@@ -399,6 +399,13 @@ namespace OrmTest.Demo
|
|||||||
var test12 = db.Queryable<Student>().Distinct().Select(it=>new Student{ Name=it.Name }).ToList();
|
var test12 = db.Queryable<Student>().Distinct().Select(it=>new Student{ Name=it.Name }).ToList();
|
||||||
var test13 = db.Queryable<Student>().Where(it=>DateTime.Parse("2014-1-1")==DateTime.Now).Where(it => Boolean.Parse("true") ==true).ToList();
|
var test13 = db.Queryable<Student>().Where(it=>DateTime.Parse("2014-1-1")==DateTime.Now).Where(it => Boolean.Parse("true") ==true).ToList();
|
||||||
var test14 = db.Queryable<DataTestInfo2>().Where(it =>Convert.ToBoolean(it.Bool1)).ToList();
|
var test14 = db.Queryable<DataTestInfo2>().Where(it =>Convert.ToBoolean(it.Bool1)).ToList();
|
||||||
|
var test15 = db.Queryable<DataTestInfo2>().Where(it => it.Bool2.Value&&it.Bool1).ToList();
|
||||||
|
var test16 = db.Queryable<DataTestInfo2>().Where(it => !it.Bool2.Value && !it.Bool1).ToList();
|
||||||
|
var test17 = db.Queryable<DataTestInfo2>().Where(it => it.Bool1 && it.Bool1).ToList();
|
||||||
|
var test18 = db.Queryable<Student>().Where(it => it.SchoolId.HasValue&&it.SchoolId.HasValue).ToList();
|
||||||
|
var test19 = db.Queryable<Student>().Where(it => it.SchoolId.HasValue && it.SchoolId.HasValue&&it.SchoolId.HasValue).ToList();
|
||||||
|
var test20 = db.Queryable<Student>().Where(it => it.SchoolId.HasValue && SqlFunc.IsNullOrEmpty(it.Name)).ToList();
|
||||||
|
//var test24 = db.Queryable<Student>().Where(it => !it.SchoolId.HasValue && it.SchoolId.HasValue).ToList();
|
||||||
}
|
}
|
||||||
public static void Page()
|
public static void Page()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -100,6 +100,37 @@ namespace SqlSugar
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Resolve Where
|
#region Resolve Where
|
||||||
|
private void ResolveBoolLogic(ExpressionParameter parameter, ExpressionParameter baseParameter, MemberExpression expression, bool? isLeft, bool isSetTempData, bool isSingle)
|
||||||
|
{
|
||||||
|
string fieldName = string.Empty;
|
||||||
|
if (isSetTempData)
|
||||||
|
{
|
||||||
|
if (ExpressionTool.IsConstExpression(expression))
|
||||||
|
{
|
||||||
|
var value = ExpressionTool.GetMemberValue(expression.Member, expression);
|
||||||
|
baseParameter.CommonTempData = value+"=1 ";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fieldName = GetName(parameter, expression, null, isSingle);
|
||||||
|
baseParameter.CommonTempData = fieldName+"=1 ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ExpressionTool.IsConstExpression(expression))
|
||||||
|
{
|
||||||
|
var value = ExpressionTool.GetMemberValue(expression.Member, expression);
|
||||||
|
base.AppendValue(parameter, isLeft, value+"=1 ");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fieldName = GetName(parameter, expression, isLeft, isSingle);
|
||||||
|
AppendMember(parameter, isLeft, fieldName+"=1 ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void ResolveWhereLogic(ExpressionParameter parameter, ExpressionParameter baseParameter, MemberExpression expression, bool? isLeft, bool isSetTempData, bool isSingle)
|
private void ResolveWhereLogic(ExpressionParameter parameter, ExpressionParameter baseParameter, MemberExpression expression, bool? isLeft, bool isSetTempData, bool isSingle)
|
||||||
{
|
{
|
||||||
string fieldName = string.Empty;
|
string fieldName = string.Empty;
|
||||||
@@ -137,7 +168,14 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
expression = expression.Expression as MemberExpression;
|
expression = expression.Expression as MemberExpression;
|
||||||
baseParameter.ChildExpression = expression;
|
baseParameter.ChildExpression = expression;
|
||||||
ResolveWhereLogic(parameter, baseParameter, expression, isLeft, isSetTempData, isSingle);
|
if (UtilMethods.GetUnderType(expression.Type) == UtilConstants.BoolType&¶meter.BaseExpression!=null&&ExpressionTool.IsLogicOperator(parameter.BaseExpression))
|
||||||
|
{
|
||||||
|
ResolveBoolLogic(parameter, baseParameter, expression, isLeft, isSetTempData, isSingle);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ResolveWhereLogic(parameter, baseParameter, expression, isLeft, isSetTempData, isSingle);
|
||||||
|
}
|
||||||
return expression;
|
return expression;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,7 +286,18 @@ namespace SqlSugar
|
|||||||
methodParamter
|
methodParamter
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.Context.Result.Append(result);
|
if (parameter.BaseExpression != null && ExpressionTool.IsLogicOperator(parameter.BaseExpression) && parameter.IsLeft == true)
|
||||||
|
{
|
||||||
|
if (base.Context.Result.Contains(ExpressionConst.FormatSymbol))
|
||||||
|
{
|
||||||
|
base.Context.Result.Replace(ExpressionConst.FormatSymbol, "");
|
||||||
|
}
|
||||||
|
this.Context.Result.Append(result+" "+ExpressionTool.GetOperator(parameter.BaseExpression.NodeType)+" ");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.Context.Result.Append(result);
|
||||||
|
}
|
||||||
parameter.CommonTempData = null;
|
parameter.CommonTempData = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user