You could use the ObjectContext.ObjectMaterialized. MSDN snippet:
Occurs when a new entity object is created from data in the data source as part of a query or load operation.
This event is raised after all scalar, complex, and reference properties have been set on an object, but before collections are loaded. If an object with the same key value exists in the object context, the Entity Framework will not recreate the object and this event will not be raised.
But this would only track items read from Db through your EF implementation.