supporting state management for poco object in object context
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
persisted.
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>.