TransactionIsolationLevel Enumeration
Specifies the value of the TransactionAttribute.
Assembly: System.EnterpriseServices (in System.EnterpriseServices.dll)
| Member name | Description | |
|---|---|---|
| Any | The isolation level for the component is obtained from the calling component's isolation level. If this is the root component, the isolation level used is Serializable. | |
| ReadCommitted | Shared locks are held while the data is being read to avoid reading modified data, but the data can be changed before the end of the transaction, resulting in non-repeatable reads or phantom data. | |
| ReadUncommitted | Shared locks are issued and no exclusive locks are honored. | |
| RepeatableRead | Locks are placed on all data that is used in a query, preventing other users from updating the data. Prevents non-repeatable reads, but phantom rows are still possible. | |
| Serializable | Prevents updating or inserting until the transaction is complete. |
The following code example demonstrates the use of the TransactionIsolationLevel type.
#using <System.EnterpriseServices.dll> using namespace System; using namespace System::EnterpriseServices; using namespace System::Reflection; // References: // System.EnterpriseServices // An instance of this class will inherit its caller's transaction isolation // level if available. If not, it will use isolation level Serializable. [Transaction(Isolation=TransactionIsolationLevel::Any)] public ref class IsolationAny : public ServicedComponent { }; // An instance of this class will read only committed data, but non-repeatable // reads and phantom rows are still possible. [Transaction(Isolation=TransactionIsolationLevel::ReadCommitted)] public ref class IsolationReadCommitted : public ServicedComponent { }; // An instance of this class will read committed and uncommitted data, so dirty // reads, non-repeatable reads, and phantom rows are possible. [Transaction(Isolation=TransactionIsolationLevel::ReadUncommitted)] public ref class IsolationReadUncommitted : public ServicedComponent { }; // An instance of this class will read only committed data and place shared // locks on the data, preventing other users from modifying it, but other users // can still insert rows into the data set, so phantom rows are still possible. [Transaction(Isolation=TransactionIsolationLevel::RepeatableRead)] public ref class IsolationRepeatableRead : public ServicedComponent { }; // An instance of this class will read only committed data and place a range // lock on the data set, preventing other users from updating or inserting rows // into the data set until its transaction is complete. [Transaction(Isolation=TransactionIsolationLevel::Serializable)] public ref class IsolationSerializable : public ServicedComponent { };
Available since 1.1