diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoEntityTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoEntityTagRepository.cs index b4a3d25941..e3835bfe42 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoEntityTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoEntityTagRepository.cs @@ -60,16 +60,23 @@ public class MongoEntityTagRepository : MongoDbRepository(GetCancellationToken(cancellationToken)); - var resultQueryable = from et in entityTagQueryable - join t in tagQueryable on et.TagId equals t.Id - where t.Name == tagName - && t.EntityType == entityType - && et.TenantId == tenantId - && t.TenantId == tenantId - && !t.IsDeleted - select et.EntityId; + var tagQueryable = dbContext.Tags.AsQueryable(); + + var resultQueryable = entityTagQueryable + .Join( + tagQueryable, + o => o.TagId, + i => i.Id, + (entityTag, tag) => new { entityTag, tag }) + .Where(x => x.tag.EntityType == entityType + && x.entityTag.TenantId == tenantId + && x.tag.TenantId == tenantId + && x.tag.IsDeleted == false + ) + .Select(s => s.entityTag.EntityId); + return await AsyncExecuter.ToListAsync(resultQueryable, GetCancellationToken(cancellationToken)); } }