/// <summary>
 /// 根据课程分类id集合移除所有课程关系
 /// </summary>
 /// <param name="courseCategoryIds">课程分类id集合</param>
 /// <returns></returns>
 public async Task RemoveAllByCategoryIds(List <long> courseCategoryIds)
 {
     if (courseCategoryIds == null || courseCategoryIds.Count == 0)
     {
         return;
     }
     await EntityRepo.DeleteAsync(
         o => courseCategoryIds.Contains(o.CourseCategoryId)
         );
 }
        /// <summary>
        /// 从课程分类中移除所选课程 - 批量
        /// </summary>
        /// <param name="courseCategoryId">分类id</param>
        /// <param name="courseIds">课程id集合</param>
        /// <returns></returns>
        public async Task BatchRemoveCourseFromCategory(long courseCategoryId, List <long> courseIds)
        {
            if (courseIds == null || courseIds.Count == 0)
            {
                return;
            }

            await EntityRepo.DeleteAsync(o =>
                                         o.CourseCategoryId == courseCategoryId && courseIds.Contains(o.CourseId)
                                         );
        }
        public async Task BatchDelete(List <long> input)
        {
            if (input == null || input.Count == 0)
            {
                return;
            }

            await EntityRepo.DeleteAsync(a => input.Contains(a.Id));

            await _courseToCourseCategoryManager.RemoveAllByCategoryIds(input);
        }
 /// <summary>
 /// 根据课程id移除所有分类关联
 /// </summary>
 /// <param name="courseId"></param>
 /// <returns></returns>
 public async Task RemoveAllByCourseId(long courseId)
 {
     await EntityRepo.DeleteAsync(
         o => o.CourseId == courseId
         );
 }
 /// <summary>
 /// 从课程分类中移除所选课程
 /// </summary>
 /// <param name="courseCategoryId">分类id</param>
 /// <param name="courseId">课程id</param>
 /// <returns></returns>
 public async Task RemoveCourseFromCategory(long courseCategoryId, long courseId)
 {
     await EntityRepo.DeleteAsync(
         o => o.CourseId == courseId && o.CourseCategoryId == courseCategoryId
         );
 }
        public async Task DeleteAsync(long id)
        {
            await EntityRepo.DeleteAsync(id);

            await _courseToCourseCategoryManager.RemoveAllByCategoryId(id);
        }