Update exp to sql

This commit is contained in:
sunkaixuna 2021-12-25 16:00:01 +08:00
parent 206ce8a593
commit b00b651d7f
2 changed files with 16 additions and 5 deletions

View File

@ -202,11 +202,17 @@ namespace OrmTest
var listEnum=db.Queryable<UnitEnumadfa>().ToList();
var d111111 = db.Queryable<Order>()
.Where(it => it.Id== SqlFunc.IF(true).Return(1).End(0) )
.ToList();
var d1111111 = db.Queryable<Order>()
.Where(it => it.Id == SqlFunc.IF(it.Id>0).Return(1).End(0))
.ToList();
.Where(it => it.Id== SqlFunc.IF(true).Return(1).End(0) )
.ToList();
var d1111111 = db.Queryable<Order>()
.Where(it => it.Id == SqlFunc.IF(it.Id>0).Return(1).End(0))
.ToList();
var d11111111 = db.Queryable<Order>()
.Where(it => it.Id == (it.Id>0? (it.Id==1?11:1):2))
.ToList();
var d111111111 = db.Queryable<Order>()
.Where(it => it.Id == (it.Id > 0 ? (it.Id == 1 ? 11 : (it.Id==2?2:1)) : 2))
.ToList();
}

View File

@ -422,6 +422,7 @@ namespace SqlSugar
var isBinaryExpression = item is BinaryExpression || item is MethodCallExpression;
var isConst = item is ConstantExpression;
var isIIF = name == "IIF";
var isSubIIF= (isIIF && item.ToString().StartsWith("IIF")) ;
var isIFFBoolMember = isIIF && (item is MemberExpression) && (item as MemberExpression).Type == UtilConstants.BoolType;
var isIFFUnary = isIIF && (item is UnaryExpression) && (item as UnaryExpression).Operand.Type == UtilConstants.BoolType;
var isIFFBoolBinary = isIIF && (item is BinaryExpression) && (item as BinaryExpression).Type == UtilConstants.BoolType;
@ -460,6 +461,10 @@ namespace SqlSugar
{
model.Args.Add(GetMethodCallArgs(parameter, item));
}
else if (isSubIIF)
{
model.Args.Add(GetMethodCallArgs(parameter, item));
}
else
{
AppendModel(parameter, model, item);