/// <summary>
        /// 插入一个新的 Tag-FileItem 关系,并返回实体类对象。
        /// 若关系已存在,则什么都不做。
        /// </summary>
        /// <returns>关系实体类</returns>
        public async Task <TagFileRelation> AddRelationAsync(Tag tag, FileItem fileItem)
        {
#if DISPOSE_CONTEXT_IMMEDIATELY
            using (var context = Context)
            {
#endif
            var relation = await GetRelationAsync(tag, fileItem);

            if (relation == null)
            {
                relation = new TagFileRelation
                {
                    TagId         = tag.TagId,
                    FileItemId    = fileItem.FileItemId,
                    UtcCreateTime = DateTime.UtcNow
                };
                await context.Relations.AddAsync(relation);

                await context.SaveChangesAsync();
            }
            return(relation);

#if DISPOSE_CONTEXT_IMMEDIATELY
        }
#endif
        }
        /// <summary>
        /// 移除 TagFileRelation 对象。
        /// 若关系不存在则什么都不做。
        /// </summary>
        public async Task RemoveRelationAsync(TagFileRelation relation)
        {
#if DISPOSE_CONTEXT_IMMEDIATELY
            using (var context = Context)
            {
#endif
            if (await IsRelationExistAsync(relation.Tag, relation.FileItem))
            {
                context.Relations.Remove(relation);
                await context.SaveChangesAsync();
            }
#if DISPOSE_CONTEXT_IMMEDIATELY
        }
#endif
        }