Update exp to sql

This commit is contained in:
sunkaixuna 2021-12-25 15:35:28 +08:00
parent 3103209232
commit 206ce8a593
2 changed files with 16 additions and 0 deletions

View File

@ -200,6 +200,13 @@ namespace OrmTest
db.Insertable(new UnitEnumadfa()).ExecuteCommand(); db.Insertable(new UnitEnumadfa()).ExecuteCommand();
db.Insertable(new UnitEnumadfa() { Type=DbType.Sqlite}).ExecuteCommand(); db.Insertable(new UnitEnumadfa() { Type=DbType.Sqlite}).ExecuteCommand();
var listEnum=db.Queryable<UnitEnumadfa>().ToList(); 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();
} }

View File

@ -55,6 +55,15 @@ namespace SqlSugar
else else
{ {
var sql = SubTools.GetMethodValue(this.context, methodExp.Arguments[0], this.context.IsSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple); var sql = SubTools.GetMethodValue(this.context, methodExp.Arguments[0], this.context.IsSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple);
if (methodExp.Method.Name == "IF")
{
var parameter = this.context.Parameters.FirstOrDefault(it => it.ParameterName == sql.Trim());
if (parameter!=null&&parameter.Value is bool)
{
sql = Convert.ToBoolean(parameter.Value) ? " 1=1 " : " 1=2 ";
this.context.Parameters.Remove(parameter);
}
}
sqls.Add(new KeyValuePair<string, string>(methodExp.Method.Name, sql)); sqls.Add(new KeyValuePair<string, string>(methodExp.Method.Name, sql));
} }
} }