diff --git a/products/ASC.Files/Core/Core/Thirdparty/IThirdPartyProviderDao.cs b/products/ASC.Files/Core/Core/Thirdparty/IThirdPartyProviderDao.cs index 88a9620ae9..4ed776b38b 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/IThirdPartyProviderDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/IThirdPartyProviderDao.cs @@ -464,23 +464,18 @@ namespace ASC.Files.Thirdparty if (!entryIDs.Any()) return new List(); - var q = FilesDbContext.Tag - .Join(FilesDbContext.TagLink.DefaultIfEmpty(), - r => new TagLink { TenantId = r.TenantId, Id = r.Id }, - r => new TagLink { TenantId = r.TenantId, Id = r.TagId }, - (tag, tagLink) => new { tag, tagLink }, - new TagLinkComparer()) - .Where(r => r.tag.TenantId == TenantID) - .Where(r => r.tag.Flag == TagType.New) - .Where(r => r.tagLink.TenantId == TenantID) - .Where(r => entryIDs.Any(a => a == r.tagLink.EntryId)); + var q = from r in FilesDbContext.Tag + from l in FilesDbContext.TagLink.Where(a => a.TenantId == r.TenantId && a.TagId == r.Id).DefaultIfEmpty() + where r.TenantId == TenantID && l.TenantId == TenantID && r.Flag == TagType.New && entryIDs.Contains(l.EntryId) + select new { tag = r, tagLink = l }; if (subject != Guid.Empty) { q = q.Where(r => r.tag.Owner == subject); } - var tags = q + var tags = q + .Distinct() .ToList() .Select(r => new Tag {