mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-01 18:59:35 +08:00
Add ConditionalType.InLike
This commit is contained in:
parent
10f2d29c38
commit
c6a1fa4655
@ -434,7 +434,8 @@ namespace SqlSugar
|
||||
public virtual ISugarQueryable<T> Where(List<IConditionalModel> conditionalModels)
|
||||
{
|
||||
if (conditionalModels.IsNullOrEmpty()) return this;
|
||||
var sqlObj = this.SqlBuilder.ConditionalModelToSql(conditionalModels);
|
||||
var sqlObj = this.SqlBuilder.ConditionalModelToSql(conditionalModels,this.QueryBuilder.WhereIndex);
|
||||
this.QueryBuilder.WhereIndex++;
|
||||
return this.Where(sqlObj.Key, sqlObj.Value);
|
||||
}
|
||||
|
||||
|
@ -122,12 +122,13 @@ namespace SqlSugar
|
||||
StringBuilder builder = new StringBuilder();
|
||||
List<SugarParameter> parameters = new List<SugarParameter>();
|
||||
var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig);
|
||||
var mainIndex = 0;
|
||||
foreach (var model in models)
|
||||
{
|
||||
if (model is ConditionalModel)
|
||||
{
|
||||
var item = model as ConditionalModel;
|
||||
var index = models.IndexOf(item) + beginIndex;
|
||||
var index = mainIndex + beginIndex;
|
||||
var type = index == 0 ? "" : "AND";
|
||||
if (beginIndex > 0)
|
||||
{
|
||||
@ -231,6 +232,19 @@ namespace SqlSugar
|
||||
parameters.Add(new SugarParameter(parameterName, GetFieldValue(item)));
|
||||
}
|
||||
break;
|
||||
case ConditionalType.InLike:
|
||||
var array =(item.FieldValue+"").Split(',').ToList();
|
||||
List<string> sqls = new List<string>();
|
||||
int i = 0;
|
||||
foreach (var val in array)
|
||||
{
|
||||
var itemParameterName = $"{ parameterName}{index}{i}";
|
||||
sqls.Add(item.FieldName.ToSqlFilter()+ " LIKE " + itemParameterName);
|
||||
parameters.Add(new SugarParameter(itemParameterName, "%" + val + "%"));
|
||||
i++;
|
||||
}
|
||||
builder.Append($" ({string.Join(" OR ", sqls)}) ");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -275,6 +289,7 @@ namespace SqlSugar
|
||||
}
|
||||
}
|
||||
}
|
||||
mainIndex++;
|
||||
}
|
||||
return new KeyValuePair<string, SugarParameter[]>(builder.ToString(), parameters.ToArray());
|
||||
}
|
||||
|
@ -22,5 +22,6 @@ namespace SqlSugar
|
||||
IsNot=12,
|
||||
NoLike = 13,
|
||||
EqualNull = 14,
|
||||
InLike=15
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user