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
5b481ce909
commit
eaa4472274
@ -11,14 +11,14 @@ namespace OrmTest
|
||||
// OldTestMain.Init();
|
||||
|
||||
//Demo
|
||||
Demo0_SqlSugarClient.Init();
|
||||
Demo1_Queryable.Init();
|
||||
Demo2_Updateable.Init();
|
||||
Democ_GobalFilter.Init();
|
||||
DemoD_DbFirst.Init();
|
||||
DemoE_CodeFirst.Init();
|
||||
Demo5_SqlQueryable.Init();
|
||||
Demo6_Queue.Init();
|
||||
//Demo0_SqlSugarClient.Init();
|
||||
//Demo1_Queryable.Init();
|
||||
//Demo2_Updateable.Init();
|
||||
//Democ_GobalFilter.Init();
|
||||
//DemoD_DbFirst.Init();
|
||||
//DemoE_CodeFirst.Init();
|
||||
//Demo5_SqlQueryable.Init();
|
||||
//Demo6_Queue.Init();
|
||||
|
||||
//Unit test
|
||||
NewUnitTest.Init();
|
||||
|
@ -15,9 +15,19 @@ namespace OrmTest
|
||||
Db.DbMaintenance.TruncateTable<SYS_USER>();
|
||||
Db.Insertable(new SYS_USER() { USER_ID=1,USER_ACCOUNT = "a", USER_PWD = "b", USER_NAME = "c", PWD_LASTCHTIME = DateTime.Now, PWD_ERRORCOUNT = 1, PWD_LASTERRTIME = DateTime.Now }).ExecuteCommand();
|
||||
Db.Updateable(new SYS_USER() { USER_ID=1, PWD_LASTERRTIME = null }).WhereColumns(it=> new{ it.PWD_ERRORCOUNT, it.PWD_LASTERRTIME }).ExecuteCommand();
|
||||
Db.CodeFirst.InitTables(typeof(BoolTest));
|
||||
var x = new BoolTest();
|
||||
Db.Updateable<BoolTest>().SetColumns(it => new BoolTest() { BoolValue = !it.BoolValue }).Where(it=>it.Id==1).ExecuteCommand();
|
||||
|
||||
Db.Updateable<BoolTest>().SetColumns(it => it.BoolValue == !it.BoolValue ).Where(it=>it.Id==1).ExecuteCommand();
|
||||
}
|
||||
}
|
||||
|
||||
public class BoolTest
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public bool BoolValue { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 普通用户表
|
||||
/// </summary>
|
||||
|
@ -491,6 +491,15 @@ namespace SqlSugar
|
||||
Check.ThrowNotSupportedException(item.GetType().Name);
|
||||
}
|
||||
}
|
||||
protected static bool IsNotMember(Expression item)
|
||||
{
|
||||
return item is UnaryExpression &&
|
||||
item.Type == UtilConstants.BoolType &&
|
||||
(item as UnaryExpression).NodeType == ExpressionType.Not &&
|
||||
(item as UnaryExpression).Operand is MemberExpression &&
|
||||
((item as UnaryExpression).Operand as MemberExpression).Expression != null &&
|
||||
((item as UnaryExpression).Operand as MemberExpression).Expression.NodeType == ExpressionType.Parameter;
|
||||
}
|
||||
|
||||
protected bool IsSubMethod(MethodCallExpression express)
|
||||
{
|
||||
|
@ -48,7 +48,7 @@ namespace SqlSugar
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
MemberAssignment memberAssignment = (MemberAssignment)binding;
|
||||
var type =expression.Type;
|
||||
var type = expression.Type;
|
||||
var memberName = this.Context.GetDbColumnName(type.Name, memberAssignment.Member.Name);
|
||||
var item = memberAssignment.Expression;
|
||||
if ((item is MemberExpression) && ((MemberExpression)item).Expression == null)
|
||||
@ -57,12 +57,7 @@ namespace SqlSugar
|
||||
string parameterName = AppendParameter(paramterValue);
|
||||
this.Context.Result.Append(base.Context.GetEqString(memberName, parameterName));
|
||||
}
|
||||
else if (item is UnaryExpression&&
|
||||
item.Type==UtilConstants.BoolType&&
|
||||
(item as UnaryExpression).NodeType==ExpressionType.Not&&
|
||||
(item as UnaryExpression).Operand is MemberExpression&&
|
||||
((item as UnaryExpression).Operand as MemberExpression).Expression!=null&&
|
||||
((item as UnaryExpression).Operand as MemberExpression).Expression.NodeType == ExpressionType.Parameter)
|
||||
else if (IsNotMember(item))
|
||||
{
|
||||
if (base.Context.Result.IsLockCurrentParameter == false)
|
||||
{
|
||||
|
@ -9,6 +9,7 @@ namespace SqlSugar
|
||||
{
|
||||
public UnaryExpressionResolve(ExpressionParameter parameter) : base(parameter)
|
||||
{
|
||||
var oldExpression = base.Expression;
|
||||
var expression = base.Expression as UnaryExpression;
|
||||
var baseParameter = parameter.BaseParameter;
|
||||
switch (this.Context.ResolveType)
|
||||
@ -36,6 +37,10 @@ namespace SqlSugar
|
||||
{
|
||||
Result(parameter, nodeType);
|
||||
}
|
||||
else if (baseParameter.OperatorValue == "=" &&IsNotMember(oldExpression))
|
||||
{
|
||||
AppendNotMember(parameter,nodeType);
|
||||
}
|
||||
else if (base.Expression is BinaryExpression || parameter.BaseExpression is BinaryExpression || baseParameter.CommonTempData.ObjToString() == CommonTempDataType.Append.ToString())
|
||||
{
|
||||
Append(parameter, nodeType);
|
||||
@ -130,5 +135,26 @@ namespace SqlSugar
|
||||
parameter.BaseParameter.ChildExpression = base.Expression;
|
||||
parameter.CommonTempData = null;
|
||||
}
|
||||
|
||||
|
||||
private void AppendNotMember(ExpressionParameter parameter, ExpressionType nodeType)
|
||||
{
|
||||
BaseParameter.ChildExpression = base.Expression;
|
||||
this.IsLeft = parameter.IsLeft;
|
||||
parameter.CommonTempData = CommonTempDataType.Result;
|
||||
base.Start();
|
||||
var result= this.Context.DbMehtods.IIF(new MethodCallExpressionModel()
|
||||
{
|
||||
Args = new List<MethodCallExpressionArgs>() {
|
||||
new MethodCallExpressionArgs(){ IsMember=true, MemberName=parameter.CommonTempData.ObjToString()+"=1" },
|
||||
new MethodCallExpressionArgs(){ IsMember=true,MemberName=AppendParameter(0) },
|
||||
new MethodCallExpressionArgs(){ IsMember=true, MemberName=AppendParameter(1) }
|
||||
}
|
||||
});
|
||||
this.Context.Result.Append(result);
|
||||
parameter.BaseParameter.ChildExpression = base.Expression;
|
||||
parameter.CommonTempData = null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user