From 2c43d16e29d48bce59c7fef2fcf38f47c20e0982 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 4 Sep 2023 14:11:04 +0800 Subject: [PATCH] ManyToMany Support WhereSql --- .../SqlSugar/Abstract/QueryableProvider/NavigatManager.cs | 2 +- .../SqlSugar/Entities/Mapping/SugarMappingAttribute.cs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs index 163a080d9..14b4501ca 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs @@ -227,7 +227,7 @@ namespace SqlSugar var abDb = this.Context; abDb = GetCrossDatabase(abDb, mappingEntity.Type); var queryable = abDb.Queryable(); - var abids = queryable.AS(mappingEntity.DbTableName).Filter(this.QueryBuilder?.IsDisabledGobalFilter==true?null:mappingEntity.Type).Where(conditionalModels).Select($"{queryable.SqlBuilder.GetTranslationColumnName(aColumn.DbColumnName)} as aid,{queryable.SqlBuilder.GetTranslationColumnName(bColumn.DbColumnName)} as bid").ToList(); + var abids = queryable.AS(mappingEntity.DbTableName).WhereIF(navObjectNameColumnInfo?.Navigat?.WhereSql!=null, navObjectNameColumnInfo?.Navigat?.WhereSql).Filter(this.QueryBuilder?.IsDisabledGobalFilter==true?null: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/Entities/Mapping/SugarMappingAttribute.cs b/Src/Asp.NetCore2/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs index 7e1e0fbd4..dd35b07d8 100644 --- a/Src/Asp.NetCore2/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs +++ b/Src/Asp.NetCore2/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs @@ -264,6 +264,14 @@ namespace SqlSugar this.MappingBId = typeBId; this.NavigatType = NavigateType.ManyToMany; } + public Navigate(Type MappingTableType, string typeAiD, string typeBId,string mappingSql) + { + this.MappingType = MappingTableType; + this.MappingAId = typeAiD; + this.MappingBId = typeBId; + this.NavigatType = NavigateType.ManyToMany; + this.WhereSql+= mappingSql; + } }