Reading Repository Data Outside of a Transaction
A repository engine method that reads data can execute outside a transaction. However, repository data that is read in this way can include partial updates from an active transaction.
To ensure that the data read from a repository does not include partial updates from active transactions, put read requests into a transaction. Otherwise, if you bracket your reads within a transaction and your repository database is a Microsoft® Jet database, you risk overloading the cache.
Microsoft Jet uses an in-memory cache to speed up query processing. Cached data is not released until the transaction is committed. If your repository application is reading a large amount of data, and you are performing the reads within the scope of a transaction to isolate them from the uncommitted changes of other applications, the Jet cache can grow so large that it causes the application to fail. To avoid this, commit your transaction periodically (even though it is a read-only transaction).