# TransactionalState&lt;TState&gt; Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/)

## Participate(IGrainLifecycle) {#participate-orleans-runtime-igrainlifecycle-52fc9494}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/methods/participate-orleans-runtime-igrainlifecycle-52fc9494/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions/State/TransactionalState.cs#L179-L180)

```csharp
public void Participate(IGrainLifecycle lifecycle)
```

Adds the provided observer as a participant in the lifecycle.

### Parameters

- `lifecycle` (`IGrainLifecycle`): The observer.

## PerformRead(Func&lt;TState, TResult&gt;) {#performread-1-system-func-tstate-tresult-aa346f03}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/methods/performread-1-system-func-tstate-tresult-aa346f03/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions/State/TransactionalState.cs#L59-L107)

```csharp
public Task<TResult> PerformRead<TResult>(Func<TState, TResult> operation)
```

Read the current state.

### Parameters

- `operation` (`Func<TState, TResult>`)

## PerformUpdate(Func&lt;TState, TResult&gt;) {#performupdate-1-system-func-tstate-tresult-9e9b8c3c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.transactionalstate-1/methods/performupdate-1-system-func-tstate-tresult-9e9b8c3c/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions/State/TransactionalState.cs#L113-L174)

```csharp
public Task<TResult> PerformUpdate<TResult>(Func<TState, TResult> updateAction)
```

Performs an update operation and returns the result.

### Parameters

- `updateAction` (`Func<TState, TResult>`): A function that can read and update the state, and return a result
