Περιμένωντας το Yukon, που δεν χρειάζεται polling
Το cache invalidation δεν είναι χαρακτηριστικό του DataSet ή του ADO.NET, αλλά μια λειτουργία που υλοποιεί το SqlDataSource πάνω από τις βασικές κλάσεις. Αυτό που κάνει είναι να γράφει τα αποτελέσματα στο cache χρησιμοποιώντας ένα κλειδί που φτιάχνει κάνοντας hash στο συνδισμό command, connection, παραμέτρων και τιμών. Περιοδικά ελέγχει τη βάση να δει τι άλλαξε και να κάνει invalidate τα σχετικά items.
Όταν κάνεις INSERT μέσω του datasource, αυτό κοιτάζει ποιά items πρέπει να γίνουν invalid και τα βγάζει από το cache.
Ο άλλος τρόπος να κάνεις invalidate τα δεδομένα είναι να δεις πως υπολογίζει το cache key το DataSource και να αφαιρέσεις τα δεδομένα με ένα Remove(key). Δυστυχώς αυτό δεν είναι απλή δουλειά και ακόμα δεν έχω βρει πως γίνεται.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos