Clear cached entities

Clear cached entities

Postby soren » Mon 14 Nov 2011 13:39

In Linq2Sql you can, through reflection, call a ClearCache on the DataContext to have it throw the internally "cahced" entities which is a great help for us in integration testing to ensure data is read from the database and not the cached identity map.

Do you have something that resembles this? I can see you obfuscate your assemblies so reflection is pretty much out of the picture but could this be achieved somehow?
soren
 
Posts: 7
Joined: Wed 09 Nov 2011 13:01

Postby StanislavK » Wed 16 Nov 2011 18:08

To ensure you are working with the data actually available in the database and not the ones cached in the context, you can use the Refresh method of DataContext with the OverwriteCurrentValues refresh mode.

More generally, the recommended approach for working with the LinqConnect DataContext type (and the one of LINQ to SQL as well) is to use a new DataContext instance for each unit of work. This should significantly reduce the probability of working with stale data, as entity caches work on the DataContext instance level (i.e., cached entities are not shared between DataContexts).

Please tell us if this helps.
StanislavK
Devart Team
 
Posts: 1710
Joined: Thu 03 Dec 2009 10:48


Return to LinqConnect (LINQ to SQL support)