# TransactionalState&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) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions/State/TransactionalState.cs#L20)

```csharp
public class TransactionalState<TState> : ILifecycleParticipant<IGrainLifecycle>, ITransactionalState<TState>
    where TState : class, new()
```

Stateful facet that respects Orleans transaction semantics

## Constructors

- [TransactionalState&lt;TState&gt;(TransactionalStateConfiguration, IGrainContextAccessor, ITransactionDataCopier&lt;TState&gt;, IGrainRuntime, ILogger&lt;TransactionalState&lt;TState&gt;&gt;)](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/constructors/constructor-orleans-transactions-abstractions-transactionalstateconfiguration-or-00e7905b/)

## Properties

- [CurrentTransactionId](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/properties/currenttransactionid-64d99570/)

## Methods

- [Participate(IGrainLifecycle)](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/methods/participate-orleans-runtime-igrainlifecycle-52fc9494/)
- [PerformRead(Func&lt;TState, TResult&gt;)](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/methods/performread-1-system-func-tstate-tresult-aa346f03/)
- [PerformUpdate(Func&lt;TState, TResult&gt;)](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/methods/performupdate-1-system-func-tstate-tresult-9e9b8c3c/)
