Do it per action, so if you're saving a couple of entities in a routine, create an adapter instance and at the end of the routine, dispose it, similar to when you would use a transaction.
Creating a new DataAccessAdapter instance doesn't cost a lot of resources, almost nothing, it's very fast, so you shouldn't notice any delay at all.