mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-26 18:59:17 +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 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 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()
|
||||
{
|
||||
|
||||
@@ -100,6 +100,37 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#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)
|
||||
{
|
||||
string fieldName = string.Empty;
|
||||
@@ -137,7 +168,14 @@ namespace SqlSugar
|
||||
{
|
||||
expression = expression.Expression as MemberExpression;
|
||||
baseParameter.ChildExpression = expression;
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -248,7 +286,18 @@ namespace SqlSugar
|
||||
methodParamter
|
||||
}
|
||||
});
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user