mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 13:06:50 +08:00
update exp to sql
This commit is contained in:
parent
b00b651d7f
commit
82c3833e4c
@ -213,6 +213,9 @@ namespace OrmTest
|
||||
var d111111111 = db.Queryable<Order>()
|
||||
.Where(it => it.Id == (it.Id > 0 ? (it.Id == 1 ? 11 : (it.Id==2?2:1)) : 2))
|
||||
.ToList();
|
||||
bool? bq = true;
|
||||
var d1111111111 = db.Queryable<BoolTest1>().Where(it => it.a.Equals(bq.Value)).ToArray();
|
||||
var d11111111111 = db.Queryable<BoolTest1>().Where(it => SqlFunc.IIF(bq.Value,1,2)==1).ToArray();
|
||||
}
|
||||
|
||||
|
||||
|
@ -428,6 +428,7 @@ namespace SqlSugar
|
||||
var isIFFBoolBinary = isIIF && (item is BinaryExpression) && (item as BinaryExpression).Type == UtilConstants.BoolType;
|
||||
var isIFFBoolMethod = isIIF && (item is MethodCallExpression) && (item as MethodCallExpression).Type == UtilConstants.BoolType;
|
||||
var isFirst = item == args.First();
|
||||
var isBoolValue = item.Type == UtilConstants.BoolType && item.ToString().StartsWith("value(");
|
||||
if (isFirst && isIIF && isConst)
|
||||
{
|
||||
var value = (item as ConstantExpression).Value.ObjToBool() ? this.Context.DbMehtods.True() : this.Context.DbMehtods.False();
|
||||
@ -461,10 +462,26 @@ namespace SqlSugar
|
||||
{
|
||||
model.Args.Add(GetMethodCallArgs(parameter, item));
|
||||
}
|
||||
else if (isSubIIF)
|
||||
else if (isSubIIF)
|
||||
{
|
||||
model.Args.Add(GetMethodCallArgs(parameter, item));
|
||||
}
|
||||
else if (isBoolValue&&!isIIF&& item is MemberExpression)
|
||||
{
|
||||
model.Args.Add(GetMethodCallArgs(parameter, (item as MemberExpression).Expression));
|
||||
}
|
||||
else if (isBoolValue && isIIF && item is MemberExpression)
|
||||
{
|
||||
var argItem = GetMethodCallArgs(parameter, (item as MemberExpression).Expression);
|
||||
if (argItem.IsMember)
|
||||
{
|
||||
var pName = this.Context.SqlParameterKeyWord + "true_0";
|
||||
if(!this.Context.Parameters.Any(it=>it.ParameterName== pName))
|
||||
this.Context.Parameters.Add(new SugarParameter(pName, true));
|
||||
argItem.MemberName = $" {argItem.MemberName}={pName} ";
|
||||
}
|
||||
model.Args.Add(argItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
AppendModel(parameter, model, item);
|
||||
|
Loading…
Reference in New Issue
Block a user