Support Like

This commit is contained in:
sunkaixuan
2024-06-07 21:35:12 +08:00
parent 07c48db848
commit fb4cff1a24
3 changed files with 8 additions and 5 deletions

View File

@@ -70,13 +70,14 @@ namespace SqlSugar
string oldName = item.FieldName;
item.FieldName = GetTranslationColumnName(item.FieldName);
item.FieldName = item.FieldName.ToCheckField();
var isILike = this.Context.CurrentConnectionConfig?.MoreSettings?.EnableILike == true;
switch (item.ConditionalType)
{
case ConditionalType.Equal:
Equal(builder, parameters, item, type, temp, parameterName);
break;
case ConditionalType.Like:
builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName);
builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), isILike ? "ILIKE" : "LIKE", parameterName);
parameters.Add(new SugarParameter(parameterName, "%" + item.FieldValue + "%"));
break;
case ConditionalType.GreaterThan:
@@ -103,15 +104,15 @@ namespace SqlSugar
NotIn(builder, parameters, item, type, temp, parameterName);
break;
case ConditionalType.LikeLeft:
builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName);
builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), isILike? "ILIKE" : "LIKE", parameterName);
parameters.Add(new SugarParameter(parameterName, item.FieldValue + "%"));
break;
case ConditionalType.NoLike:
builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), " NOT LIKE", parameterName);
builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), isILike ? "NOT ILIKE" : " NOT LIKE", parameterName);
parameters.Add(new SugarParameter(parameterName, "%" + item.FieldValue + "%"));
break;
case ConditionalType.LikeRight:
builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName);
builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), isILike ? "ILIKE" : "LIKE", parameterName);
parameters.Add(new SugarParameter(parameterName, "%" + item.FieldValue));
break;
case ConditionalType.NoEqual:

View File

@@ -16,6 +16,7 @@ namespace SqlSugar
public bool DisableMillisecond { get; set; }
public bool PgSqlIsAutoToLower { get; set; } = true;
public bool PgSqlIsAutoToLowerCodeFirst { get; set; } = true;
public bool EnableILike { get; set; }
public bool IsAutoToUpper { get; set; } = true;
public int DefaultCacheDurationInSeconds { get; set; }
public bool? TableEnumIsString { get; set; }

View File

@@ -661,7 +661,8 @@ namespace SqlSugar
SqliteCodeFirstEnableDropColumn=it.MoreSettings.SqliteCodeFirstEnableDropColumn,
MaxParameterNameLength=it.MoreSettings.MaxParameterNameLength,
DisableQueryWhereColumnRemoveTrim=it.MoreSettings.DisableQueryWhereColumnRemoveTrim,
DatabaseModel=it.MoreSettings.DatabaseModel
DatabaseModel=it.MoreSettings.DatabaseModel,
EnableILike=it.MoreSettings.EnableILike
},
SqlMiddle = it.SqlMiddle == null ? null : new SqlMiddle