public void DeleteCategories(DeleteCategoriesParameter param) { using (var scope = DbScope.Create()) using (var context = base.CreateContext()) { scope.BeginTransaction(); var q = context.NewsCategories.Where(t => param.RowIDSet.Contains(t.RowID)); foreach (var item in q) { if (context.News.Any(t => t.CategoryID == item.RowID)) { throw new InvalidInvokeException("不能删除有新闻的分类"); } //更新子类的父类为被删除类别的父类。 context.NewsCategories.Update(t => t.ParentID == item.RowID, t => new NewsCategory { ParentID = item.ParentID }); } q.Delete(); scope.Complete(); } CacheInterceptorAttribute.ClearCache(_QueryCategories); }
public void DeleteCategories(DeleteCategoriesParameter param) { var repository = new NewsRepository(); repository.DeleteCategories(param); }