diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs index d1df92b7e..ee15472c3 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs @@ -216,7 +216,7 @@ namespace SqlSugar CSharpTypeName = aColumn.PropertyInfo.PropertyType.Name })); var queryable = this.Context.Queryable(); - var abids = queryable.AS(mappingEntity.DbTableName).Where(conditionalModels).Select($"{queryable.SqlBuilder.GetTranslationColumnName(aColumn.DbColumnName)} as aid,{queryable.SqlBuilder.GetTranslationColumnName(bColumn.DbColumnName)} as bid").ToList(); + var abids = queryable.AS(mappingEntity.DbTableName).Filter(mappingEntity.Type).Where(conditionalModels).Select($"{queryable.SqlBuilder.GetTranslationColumnName(aColumn.DbColumnName)} as aid,{queryable.SqlBuilder.GetTranslationColumnName(bColumn.DbColumnName)} as bid").ToList(); List conditionalModels2 = new List(); conditionalModels2.Add((new ConditionalModel() diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs index 3d21eade7..5021fa9ec 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs @@ -163,6 +163,18 @@ namespace SqlSugar mappingA = queryable.QueryBuilder.Builder.GetTranslationColumnName(mappingA); mappingB = queryable.QueryBuilder.Builder.GetTranslationColumnName(mappingB); var bTableName = queryable.QueryBuilder.Builder.GetTranslationTableName(this.ProPertyEntity.DbTableName); + + var queryBuilerAB=this.context.Queryable().QueryBuilder; + var filters= queryBuilerAB.GetFilters(mappingType); + if (filters.HasValue()) + { + aPk += " AND " + filters; + if (queryBuilerAB.Parameters != null) + { + this.methodCallExpressionResolve.Context.Parameters.AddRange(queryBuilerAB.Parameters); + } + } + mapper.Sql = $" (select {(MethodName == "Any" ? "1":" COUNT(1) ")} from {bTableName} {this.ProPertyEntity.DbTableName}_1 where {this.ProPertyEntity.DbTableName}_1.{bPk} in (select {mappingB} from {mappingTableName} where {mappingA} = {ShorName}.{aPk} ) )"; if (this.whereSql.HasValue()) {