# DynamoDBStorage.UpsertEntryAsync(string, Dictionary&lt;string, AttributeValue&gt;, Dictionary&lt;string, AttributeValue&gt;, CancellationToken, string, Dictionary&lt;string, AttributeValue&gt;, string, Dictionary&lt;string, AttributeValue&gt;)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions.dynamodb/orleans.transactions.dynamodb.dynamodbstorage/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.transactions.dynamodb/orleans.transactions.dynamodb.dynamodbstorage/methods/)

[Source](https://github.com/dotnet/orleans/blob/8bc9fd244427351ad24ccc039a9e7642a42c1cc4/src/AWS/Shared/Storage/DynamoDBStorage.cs#L546)

```csharp
public Task UpsertEntryAsync(string tableName, Dictionary<string, AttributeValue> keys, Dictionary<string, AttributeValue> fields, CancellationToken cancellationToken, string conditionExpression = "", Dictionary<string, AttributeValue>? conditionValues = null, string extraExpression = "", Dictionary<string, AttributeValue>? extraExpressionValues = null)
```

Creates or updates an entry using the supplied cancellation token.

### Parameters

- `tableName` (`string`): The table name.
- `keys` (`Dictionary<string, AttributeValue>`): The entry keys.
- `fields` (`Dictionary<string, AttributeValue>`): The fields to write, updated with values returned by DynamoDB.
- `cancellationToken` (`CancellationToken`): The cancellation token.
- `conditionExpression` (`string`): The optional conditional expression.
- `conditionValues` (`Dictionary<string, AttributeValue>`): The conditional expression values.
- `extraExpression` (`string`): The additional update expression.
- `extraExpressionValues` (`Dictionary<string, AttributeValue>`): The additional expression values.
