public static bool Delete(string recordId) { if (string.IsNullOrWhiteSpace(recordId)) { throw new ArgumentNullException("recordId"); } ICompany factory = CompanyFactory.GetFactory(); BaseCompany model = factory.QueryCompanyByRecordId(recordId); if (model == null) { throw new MyException("待删除的单位不存在"); } List <BaseCompany> models = factory.QueryCompanysByMasterID(model.CPID); if (models.Count > 0) { throw new MyException("请先删除该公司下的所有下级公司"); } List <BaseVillage> villages = VillageServices.QueryVillageByCompanyId(recordId); if (villages.Count != 0) { throw new MyException("请先删除该单位下的所有的小区"); } ISysUser factoryUser = SysUserFactory.GetFactory(); using (DbOperator dbOperator = ConnectionManager.CreateConnection()) { try { dbOperator.BeginTransaction(); bool result = factory.Delete(recordId, dbOperator); if (!result) { throw new MyException("移除单位信息失败"); } result = factoryUser.DeleteByCompanyId(recordId, dbOperator); if (!result) { throw new MyException("移除用户信息失败"); } dbOperator.CommitTransaction(); if (result) { OperateLogServices.AddOperateLog(OperateType.Delete, string.Format("recordId:{0}", recordId)); } return(result); } catch { dbOperator.RollbackTransaction(); throw; } } }