Synchronization code

This commit is contained in:
sunkaixuan 2024-01-21 00:46:05 +08:00
parent d4ce0cad3c
commit cacaa75579

View File

@ -873,9 +873,17 @@ namespace SqlSugar
public IUpdateable<T> In<PkType>(Expression<Func<T, object>> inField, ISugarQueryable<PkType> childQueryExpression)
{
var lamResult = UpdateBuilder.GetExpressionValue(inField, ResolveExpressType.FieldSingle);
this.UpdateBuilder.LambdaExpressions.ParameterIndex = childQueryExpression.QueryBuilder.LambdaExpressions.ParameterIndex+1;
var fieldName = lamResult.GetResultString();
var sql = childQueryExpression.ToSql();
Where($" {fieldName} IN ( SELECT {fieldName} FROM ( {sql.Key} ) SUBDEL) ", sql.Value);
if (!this.UpdateBuilder.SetValues.Any())
{
var sql = childQueryExpression.ToSql();
Where($" {fieldName} IN ( SELECT {fieldName} FROM ( {sql.Key} ) SUBDEL) ", sql.Value);
}
else
{
Where($" {fieldName} IN ( SELECT {fieldName} FROM ( {childQueryExpression.ToSqlString()} ) SUBDEL) ");
}
return this;
}
public IUpdateable<T> WhereIF(bool isWhere, Expression<Func<T, bool>> expression)