Update exp to sql

This commit is contained in:
skx 2020-11-12 20:27:33 +08:00
parent de0f4fa0ce
commit 83fc19f63b
3 changed files with 42 additions and 3 deletions

View File

@ -38,9 +38,9 @@ namespace OrmTest
Ado(); Ado();
Queryable(); Queryable();
QueryableAsync(); QueryableAsync();
Thread(); //Thread();
Thread2(); //Thread2();
Thread3(); //Thread3();
} }
} }
} }

View File

@ -84,6 +84,17 @@ namespace OrmTest
var list8=Db.Queryable<Order>().Where(it => SqlFunc.ContainsArrayUseSqlParameters(ids, it.Id)).ToList(); var list8=Db.Queryable<Order>().Where(it => SqlFunc.ContainsArrayUseSqlParameters(ids, it.Id)).ToList();
var result2 = Db.Queryable<Unit_SYS_USER>().Where(o => o.XH == UserLoginInfo.XH).Select(o => o.XH).ToSql(); var result2 = Db.Queryable<Unit_SYS_USER>().Where(o => o.XH == UserLoginInfo.XH).Select(o => o.XH).ToSql();
var x = Db.Queryable<BoolTest1>().Select(it => new BoolTest2()
{
a =it.a
}).ToSql();
UValidate.Check(x.Key, "SELECT [a] AS [a] FROM [BoolTest1] ", "Queryable");
x = Db.Queryable<BoolTest2>().Select(it => new BoolTest1()
{
a = it.a.Value
}).ToSql();
UValidate.Check(x.Key, "SELECT [a] AS [a] FROM [BoolTest2] ", "Queryable");
} }
@ -360,4 +371,18 @@ namespace OrmTest
public Guid? Id { get; set; } public Guid? Id { get; set; }
} }
} }
internal class BoolTest1
{
public BoolTest1()
{
}
public bool a { get; set; }
}
public class BoolTest2
{
public bool? a { get; set; }
}
} }

View File

@ -343,6 +343,10 @@ namespace SqlSugar
this.Context.Result.IsLockCurrentParameter = true; this.Context.Result.IsLockCurrentParameter = true;
parameter.IsAppendTempDate(); parameter.IsAppendTempDate();
this.Expression = item; this.Expression = item;
if (IsBoolValue(item))
{
this.Expression = (item as MemberExpression).Expression;
}
this.Start(); this.Start();
parameter.IsAppendResult(); parameter.IsAppendResult();
this.Context.Result.Append(this.Context.GetAsString(asName, parameter.CommonTempData.ObjToString())); this.Context.Result.Append(this.Context.GetAsString(asName, parameter.CommonTempData.ObjToString()));
@ -491,6 +495,16 @@ namespace SqlSugar
Check.ThrowNotSupportedException(item.GetType().Name); Check.ThrowNotSupportedException(item.GetType().Name);
} }
} }
private static bool IsBoolValue(Expression item)
{
return item.Type == UtilConstants.BoolType &&
(item is MemberExpression) &&
(item as MemberExpression).Expression != null &&
(item as MemberExpression).Expression.Type == typeof(bool?) &&
(item as MemberExpression).Member.Name == "Value";
}
protected static bool IsConvert(Expression item) protected static bool IsConvert(Expression item)
{ {
return item is UnaryExpression && item.NodeType == ExpressionType.Convert; return item is UnaryExpression && item.NodeType == ExpressionType.Convert;