public virtual void EnsureCanWrite()
 {
     ThrowIfDisposed();
     m_transaction.EnsureCanWrite();
 }