var entry = context.ObjectStateManager.GetObjectStateEntry(poco);

For the Entity Framework to create the change-tracking proxies for your POCO classes, the following conditions must be met,

1. The class must be public, non-abstract, and non-sealed.

2. The class must implement virtual getters and setters for all properties that are

3. You must declare collection-based relationships navigation properties as
ICollection<T>. They cannot be a concrete implementation or another interface
that derives from ICollection<T>.