If you have a static context then it means that all of the resources held by that object will be held for the duration of the application, yes.
If you wrap uses of it in a using then you'll simply be using a disposed object after the first call, and it won't work.
Instead you should simply create new data contexts at the smaller scope. There isn't a need for it to be a long lived object. Connection pooling helps to ensure that the cost of creating several short lived contexts isn't much more expensive than one long lived context.
Have each context represent one logical operation, and then make a new one for the next operation.