public async Task <ICollection <Tag> > AddOrUpdateTags(string[] tags) { var tagEntities = new List <Tag>(); foreach (var tag in tags) { var tagEntity = await _tagRepository.Query().FirstOrDefaultAsync(x => x.Content == tag); if (tagEntity == null) { tagEntity = await _tagRepository.AddAsync(new Tag() { Content = tag }); } } await _tagRepository.CommitAsync(); tagEntities = tags.Select(x => _tagRepository.Query().FirstOrDefault(y => y.Content == x)).ToList(); return(tagEntities); }