# TransactionalState&lt;TState&gt;.PerformRead(Func&lt;TState, TResult&gt;, ReadIsolation)

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

[Source](https://github.com/dotnet/orleans/blob/997f2589e814db85c6a451b59c081c88e50b8944/src/Orleans.Transactions/State/TransactionalState.cs#L121-L126)

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

Performs a read operation with the specified isolation and returns the result.

### Parameters

- `operation` (`Func<TState, TResult>`): A function that reads the state and returns the result. The function must leave the supplied state unchanged.
- `isolation` (`ReadIsolation`): The read isolation.

### Returns

A task whose result is the value returned by `readFunction`.
