public void ApproveEditRequest(EditRequest editRequest) { if (editRequest == null) { throw new ArgumentException("Provided deleteRequestId is not valid"); } var materialToUpdate = editRequest.MaterialToUpdate; // since onDelete action on File_EditRequest FK constraint is SET NULL - we have to delete these files manually var filesFromOtherEditRequests = materialToUpdate.EditRequests.Where(er => er != editRequest).SelectMany(er => er.Files); _uow.Materials.RemoveFiles(filesFromOtherEditRequests); var oldMaterialFilesToRemove = editRequest.ApproveRequest(SharedResourcesLibrary.Properties.Resources.MaterialFilesUploadFolderName); // since onDelete action on File_Material FK constraint is RESTRICT - we have to delete these files manually before the material _uow.Materials.RemoveFiles(oldMaterialFilesToRemove); _uow.Materials.Update(materialToUpdate); _uow.SaveChanges(); }