In a project I’m working on, we’re using external lists with corresponding external content types to display data from a remote SQL server in SharePoint. All worked well and the customer was satisfied. Untill one day, the customer requested that a custom action was added to the external content type. “No problem!” I said, well knowing that “no problem” in SharePoint world sometimes is a dangarous thing to say. And so it was.
Although it’s not that hard to add an action, deploying it is another thing. First of all, the best thing to do is to upgrade both the version number of your content type (it has a version number in the XML definition file) and the version number of your feature. That’s a common known procedure called feature updating. It means you can upgrade your solution (instead of retracting and redeploying), update your feature and have your new defition in place. That seemed to work fine.
But when I opened one of the external lists, I noticed the new action wasn’t there. There’s no way to edit or update the content types of an external list, so I was a bit stuck there. Secondly, in newly created lists; my new action WAS there. So apparantly, the external list itself is keeping a copy of the content type the way a normal list does too. But in a normal list, you have the option to push down content type changes to all of its decendants, an option which doesn’t seem to be available.
To cut a long story short; when you run into this problem; recreating all of your lists is basically the only option you’ve got. That sucks, I know, but it’s true untill proven otherwise. Sorry.