# ExclusiveLockTransactionTestRunner.ConcurrentReadThenWriteWithExclusiveLock_NoLockException(string)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.exclusivelocktransactiontestrunner/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.exclusivelocktransactiontestrunner/methods/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/TestRunners/ExclusiveLockTransactionTestRunner.cs#L78-L114)

```csharp
public virtual Task ConcurrentReadThenWriteWithExclusiveLock_NoLockException(string grainStates)
```

Verifies that using [UseExclusiveLock] on the read method prevents lock upgrade exceptions when concurrent transactions perform Read-then-Write on the same grain.

### Parameters

- `grainStates` (`string`)
