public async Task <IResultModel> BindMenu(RoleMenuBindModel model) { var exists = await _repository.ExistsAsync(model.Id); if (!exists) { return(ResultModel.NotExists); } List <RoleMenuEntity> entityList = null; if (model.Menus != null && model.Menus.Any()) { entityList = model.Menus.Select(m => new RoleMenuEntity { RoleId = model.Id, MenuId = m }).ToList(); } /* * 操作逻辑 * 1、清除已有的绑定数据 * 2、添加新的绑定数据 */ using (var tran = _roleMenuRepository.BeginTransaction()) { var clear = await _roleMenuRepository.DeleteByRoleId(model.Id, tran); if (clear) { if (entityList == null || !entityList.Any() || await _roleMenuRepository.AddAsync(entityList, tran)) { tran.Commit(); await ClearAccountPermissionCache(model.Id); return(ResultModel.Success()); } } } return(ResultModel.Failed()); }