Julie blogs at thedatafarm.com/blog and is the author of the highly acclaimed Programming Entity Framework (O’Reilly Media). One of the classic problems with database applications is refreshing stale data.
Imagine a typical e-commerce site with products and categories.
A vendor’s product list most likely does not change very often and their category list changes even less frequently.
However, those same lists must be queried from the database over and over again every time a user browses to that Web site.
Cache invalidation is a process in a computer system whereby entries in a cache are replaced or removed.
It can be done explicitly, as part of a cache coherence protocol.
This is an annoyingly inefficient use of resources and developers and architects have been stuck playing cat-and-mouse trying to reduce the waste.
Caching is one technique used to minimize this repetitive querying of nearly stagnant data.
For pre-EF6 versions you could use EF Caching Provider Wrapper but due to changes to the EF provider model in EF6 it does not work with newest versions of EF.
For descriptions of the available If you configure a query to cache results in its own internal cache, the cache invalidation policy you configure at the query level applies to the query's internal cache in the same way it would apply to the session cache.
If you are using a coordinated cache you can customize how Eclipse Link communicates the fact that an object has been declared invalid.
"Getting immediate notification from SQL Server when data changes" is a very attractive feature, but unfortunately it's not easy to implement.(It took me full day to identify and fix all issues...).
SQL Server Query Notification framework is quite fragile and may not work for multiple reasons.