Update gobal filter

This commit is contained in:
sunkaixuna
2021-10-17 11:20:53 +08:00
parent 3bc29d40b8
commit 881ede4362

View File

@@ -336,31 +336,25 @@ namespace SqlSugar
var exp = field.GetValue(item, null) as Expression;
var isMain = ChildType == this.EntityType;
var isSingle = IsSingle();
var itName = (exp as LambdaExpression).Parameters[0].Name;
itName = this.Builder.GetTranslationColumnName(itName) + ".";
var isEasyJoin = this.EasyJoinInfos.Count > 0;
string sql = "";
if (isSingle)
{
if (ChildType != this.EntityType && isSingle)
{
return;
}
var expValue = GetExpressionValue(exp, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple);
var sql = expValue.GetResultString();
var itName = (exp as LambdaExpression).Parameters[0].Name;
itName = this.Builder.GetTranslationColumnName(itName) + ".";
var isEasyJoin = this.EasyJoinInfos.Count > 0;
if (WhereInfos.Count == 0)
{
sql =( " WHERE " + sql);
}else
{
sql = (" AND " + sql);
}
if (isSingle)
{
sql = GetSql(exp, isSingle);
}
else if (isMain)
{
if (TableShortName == null)
return;
var shortName = this.Builder.GetTranslationColumnName(TableShortName) + ".";
sql = GetSql(exp, isSingle);
sql = sql.Replace(itName, shortName);
}
else if (isEasyJoin)
@@ -373,6 +367,7 @@ namespace SqlSugar
return;
}
var shortName = this.Builder.GetTranslationColumnName(easyInfo.Key.Trim()) + ".";
sql = GetSql(exp, isSingle);
sql = sql.Replace(itName, shortName);
}
else
@@ -385,11 +380,28 @@ namespace SqlSugar
return;
}
var shortName = this.Builder.GetTranslationColumnName(easyInfo.ShortName.Trim()) + ".";
sql = GetSql(exp, isSingle);
sql = sql.Replace(itName, shortName);
}
WhereInfos.Add(sql);
}
private string GetSql(Expression exp, bool isSingle)
{
var expValue = GetExpressionValue(exp, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple);
var sql = expValue.GetResultString();
if (WhereInfos.Count == 0)
{
sql = (" WHERE " + sql);
}
else
{
sql = (" AND " + sql);
}
return sql;
}
public virtual string GetExternalOrderBy(string externalOrderBy)
{
return Regex.Replace(externalOrderBy, @"\[\w+\]\.", "");