I'm in the process of looking around at options for a back office tool. On the face of it the tool is simple CRUD so I was immediately attracted to Dynamic Data on top of Entity Framework (we're definitely a Microsoft shop!).

The problem is that future requirement is to support versioning. By this I mean :

1. User performs a series of updates to a series of entities
2. When they are happy they submit the changes
3. Changes persisted to the DB along with enough info to support a rollback

Elsewhere we've got handcrafted app that :

* Includes a version id that is incremented as each new row inserted - i.e. we don't update we add a new row
* A work item table ties together the changes using the version id along with the entity type (table)

So, the question is, how would I achieve a similar end result using entity framework and dynamic data?

If entity framework, etc isn't appropriate - what would you use (.Net)?

Thanks,
Alan