If your custom provider is based on a non-transactional system then your code has to detect this ambient TransactionScope and handle the read and write requests from within this TransactionScope. For an Image Data Provider, the transactional resources could be a file being accessed for this purpose or a SQL database. If you use transactional databases, a lot of work like commits and rollbacks are handled for you by the transactional database. Not all databases behave in a consistent way. You should read the documentation on the database that you are using before designing your provider. In particular, pay attention to the database vendor’s support for System.Transactions.