mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +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>()
|
var d111111111 = db.Queryable<Order>()
|
||||||
.Where(it => it.Id == (it.Id > 0 ? (it.Id == 1 ? 11 : (it.Id==2?2:1)) : 2))
|
.Where(it => it.Id == (it.Id > 0 ? (it.Id == 1 ? 11 : (it.Id==2?2:1)) : 2))
|
||||||
.ToList();
|
.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 isIFFBoolBinary = isIIF && (item is BinaryExpression) && (item as BinaryExpression).Type == UtilConstants.BoolType;
|
||||||
var isIFFBoolMethod = isIIF && (item is MethodCallExpression) && (item as MethodCallExpression).Type == UtilConstants.BoolType;
|
var isIFFBoolMethod = isIIF && (item is MethodCallExpression) && (item as MethodCallExpression).Type == UtilConstants.BoolType;
|
||||||
var isFirst = item == args.First();
|
var isFirst = item == args.First();
|
||||||
|
var isBoolValue = item.Type == UtilConstants.BoolType && item.ToString().StartsWith("value(");
|
||||||
if (isFirst && isIIF && isConst)
|
if (isFirst && isIIF && isConst)
|
||||||
{
|
{
|
||||||
var value = (item as ConstantExpression).Value.ObjToBool() ? this.Context.DbMehtods.True() : this.Context.DbMehtods.False();
|
var value = (item as ConstantExpression).Value.ObjToBool() ? this.Context.DbMehtods.True() : this.Context.DbMehtods.False();
|
||||||
@ -465,6 +466,22 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
model.Args.Add(GetMethodCallArgs(parameter, item));
|
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
|
else
|
||||||
{
|
{
|
||||||
AppendModel(parameter, model, item);
|
AppendModel(parameter, model, item);
|
||||||
|
Loading…
Reference in New Issue
Block a user