# ITransactionalState&lt;TState&gt;

Package: [Microsoft.Orleans.Transactions](/orleans/docs/api/csharp/microsoft.orleans.transactions/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Transactions)

```csharp
public interface ITransactionalState<TState>
    where TState : class, new()
```

State that respects Orleans transaction semantics, and allows read/write locking

## Type parameters

- `TState`: The type of the state

## Methods

- [PerformRead(Func&lt;TState, TResult&gt;)](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.abstractions.itransactionalstate-1/methods/performread-1-system-func-tstate-tresult-1da59ed9/)
- [PerformUpdate(Func&lt;TState, TResult&gt;)](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.abstractions.itransactionalstate-1/methods/performupdate-1-system-func-tstate-tresult-88783a49/)
