Can this method be changed to remove all objects in one call?
Can this method be changed to remove all objects in one call?


There is no way to remove multiple objects from multiple tables in one statement and there shouldn't be (cascading foreign key constraints notwithstanding). 

The problem is that Remove(int key) is a poor name for that function. Something like RemoveObjectInputsOutputsPropertiesAndGroups(int key) would be better. Similarly, I would have on idea what a RemoveChildren() function should do in this context.