Update query filter

This commit is contained in:
sunkaixuan 2024-12-17 13:58:58 +08:00
parent 9d1e7c6487
commit 77b3455b36

View File

@ -460,7 +460,7 @@ namespace SqlSugar
if (isSameName||ChildType.IsInterface) if (isSameName||ChildType.IsInterface)
{ {
var mysql = GetSql(exp, isSingle); var mysql = GetSql(exp, isSingle);
if (ChildType.IsInterface) if (ChildType.IsInterface&&item.IsJoinQuery==true)
{ {
foreach (var joinInfoItem in this.JoinQueryInfos.Where(it => it.EntityType.GetInterfaces().Any(z=>z==ChildType))) foreach (var joinInfoItem in this.JoinQueryInfos.Where(it => it.EntityType.GetInterfaces().Any(z=>z==ChildType)))
{ {
@ -469,6 +469,15 @@ namespace SqlSugar
joinInfoItem.JoinWhere += (" AND " + Regex.Replace(addSql, "^ (WHERE|AND) ", "")); joinInfoItem.JoinWhere += (" AND " + Regex.Replace(addSql, "^ (WHERE|AND) ", ""));
} }
} }
else if (ChildType.IsInterface && item.IsJoinQuery == false)
{
foreach (var joinInfoItem in this.JoinQueryInfos.Where(it => it.EntityType.GetInterfaces().Any(z => z == ChildType)))
{
var addSql = mysql.Replace(itName, this.Builder.GetTranslationColumnName(joinInfoItem.ShortName) + ".");
addSql = ReplaceFilterColumnName(addSql, joinInfoItem.EntityType, joinInfoItem.ShortName);
this.WhereInfos.Add (" AND " + Regex.Replace(addSql, "^ (WHERE|AND) ", ""));
}
}
else else
{ {
foreach (var joinInfoItem in this.JoinQueryInfos.Where(it => it.TableName == entityInfo.DbTableName)) foreach (var joinInfoItem in this.JoinQueryInfos.Where(it => it.TableName == entityInfo.DbTableName))