FrameLog is an open source library we have written to track changes for objects in EntityFramework. One of its nicest features is that it allows you to “replay” history and recreate objects as they were at a certain point in time.
One of the limitations of this process currently is that FrameLog does not rehydrate any child navigation properties that are other types of entities. This functionality was necessary for one of our applications and I took the chance to develop this. Eventually, I hope to add this functionality into FrameLog, after further testing and refinement.
A word of warning first: the process of rehydrating children can be a destructive process. Relationships between entities can be broken and as such, will pollute your object graph. It is advisable to perform any history traversal in a separate `ObjectContext` instead.
You can find a wrapper class around FrameLog’s HistoryExplorer here.
Please try it out, and if you have any issues or suggestions, do let me know on the project itself.