hi, i know this is an older post but i'm coming across the same issue. I've moved to option #5 for now but really looking for a more meaningful solution.
I basically have a stored proc that returns one set of results with fixed fields plus a set of dynamic ones (actually pivot results). and those results are bound to a DataGridView.
The user is allowed to make changes to the grid and changes are queued in the objectcontext, once changes are complete users hits a button to fire context.savechanges().
I've been able to map the fixed fields to an entity object and in turn bind to the gridview without a problem. however, updating a value for one of the dynamic fields requires a "manual" solution (firing direct updates to a dataadapter on cell edit).
When the user triggers these actions one at a time between SaveChanges() and AdapterUpdates() everything works fine.
But when a user triggers an entitychange (AddRow) and then a direct update (cell change) we lose sync between the row added and the field updated for that row.
sorry for the long email but if anyone has any other suggestions please post them. i'm looking at the codeonly option but it appears to be for just creating your own entity objects/contexts