So far, I know of these effects.
- Lazy Loading: Any
virtual
ICollections will be lazy-loaded unless you specifically mark them otherwise. -
More efficient change tracking. If you meet all the following requirements then your change tracking can use a more efficient method by hooking your virtual properties. From the link:
To get change tracking proxies, the
basic rule is that your class must be
public, non-abstract or non-sealed.
Your class must also implement public
virtual getters/setters for all
properties that are persisted.
Finally, you must declare collection
based relationship navigation
properties asICollection<T>
only.
They cannot be a concrete
implementation or another interface
that derives fromICollection<T>
(a
difference from the Deferred Loading
proxy)
Another useful link describing this is MSDN’s Requirements for Creating POCO Proxies.