Class AttemptContext
Provides methods that allow an application's transaction logic to read, mutate, insert, and delete documents.
Inherited Members
Namespace: Couchbase.Integrated.Transactions
Assembly: Couchbase.NetClient.dll
Syntax
[InterfaceStability(Level.Volatile)]
public class AttemptContext
Properties
| Edit this page View SourceAttemptId
Gets the ID of this individual attempt.
Declaration
public string AttemptId { get; }
Property Value
Type | Description |
---|---|
string |
Logger
Gets the logger instance used for this AttemptContext.
Declaration
public ILogger<AttemptContext> Logger { get; }
Property Value
Type | Description |
---|---|
ILogger<AttemptContext> |
TransactionId
Gets the ID of this overall transaction.
Declaration
public string TransactionId { get; }
Property Value
Type | Description |
---|---|
string |
Methods
| Edit this page View SourceCommitAsync(IRequestSpan?)
Commits the transaction.
Declaration
public Task CommitAsync(IRequestSpan? parentSpan = null)
Parameters
Type | Name | Description |
---|---|---|
IRequestSpan | parentSpan | (optional) RequestSpan to use as a parent for tracing. |
Returns
Type | Description |
---|---|
Task |
ConvertQueryError(Exception)
INTERNAL
Declaration
[InterfaceStability(Level.Volatile)]
public Exception? ConvertQueryError(Exception err)
Parameters
Type | Name | Description |
---|---|---|
Exception | err | INTERNAL |
Returns
Type | Description |
---|---|
Exception | INTERNAL |
GetAsync(ICouchbaseCollection, string)
Gets a document.
Declaration
public Task<TransactionGetResult> GetAsync(ICouchbaseCollection collection, string id)
Parameters
Type | Name | Description |
---|---|---|
ICouchbaseCollection | collection | The collection to look up the document in. |
string | id | The ID of the document. |
Returns
Type | Description |
---|---|
Task<TransactionGetResult> | A TransactionGetResult containing the document. |
Exceptions
Type | Condition |
---|---|
DocumentNotFoundException | If the document does not exist. |
GetOptionalAsync(ICouchbaseCollection, string, IRequestSpan?)
Gets a document or null.
Declaration
public Task<TransactionGetResult?> GetOptionalAsync(ICouchbaseCollection collection, string id, IRequestSpan? parentSpan = null)
Parameters
Type | Name | Description |
---|---|---|
ICouchbaseCollection | collection | The collection to look up the document in. |
string | id | The ID of the document. |
IRequestSpan | parentSpan | The optional parent tracing span. |
Returns
Type | Description |
---|---|
Task<TransactionGetResult> | A TransactionGetResult containing the document, or null if not found. |
InsertAsync(ICouchbaseCollection, string, object, IRequestSpan?)
Insert a document.
Declaration
public Task<TransactionGetResult> InsertAsync(ICouchbaseCollection collection, string id, object content, IRequestSpan? parentSpan = null)
Parameters
Type | Name | Description |
---|---|---|
ICouchbaseCollection | collection | The collection to insert the document into. |
string | id | The ID of the new document. |
object | content | The content of the new document. |
IRequestSpan | parentSpan | The optional parent tracing span. |
Returns
Type | Description |
---|---|
Task<TransactionGetResult> | A TransactionGetResult representing the inserted document. |
QueryAsync<T>(string, TransactionQueryOptions, IScope?, IRequestSpan?)
Run a query in transaction mode.
Declaration
public Task<IQueryResult<T>> QueryAsync<T>(string statement, TransactionQueryOptions options, IScope? scope = null, IRequestSpan? parentSpan = null)
Parameters
Type | Name | Description |
---|---|---|
string | statement | The statement to execute. |
TransactionQueryOptions | options | The query options to use for this query. |
IScope | scope | The scope |
IRequestSpan | parentSpan | The optional parent tracing span. |
Returns
Type | Description |
---|---|
Task<IQueryResult<T>> | A SingleQueryTransactionResult<T> with the query results, if any. |
Type Parameters
Name | Description |
---|---|
T | The type of the result. Use object for queries with no results. |
Remarks
IMPORTANT: Any KV operations after this query will be run via the query engine, which has performance implications.
RemoveAsync(TransactionGetResult, IRequestSpan?)
Remove a document previously looked up in this transaction.
Declaration
public Task RemoveAsync(TransactionGetResult doc, IRequestSpan? parentSpan = null)
Parameters
Type | Name | Description |
---|---|---|
TransactionGetResult | doc | The TransactionGetResult of a document previously looked up in this transaction. |
IRequestSpan | parentSpan | The optional parent tracing span. |
Returns
Type | Description |
---|---|
Task | A task representing the asynchronous work. |
ReplaceAsync(TransactionGetResult, object, IRequestSpan?)
Replace the content of a document previously fetched in this transaction with new content.
Declaration
public Task<TransactionGetResult> ReplaceAsync(TransactionGetResult doc, object content, IRequestSpan? parentSpan = null)
Parameters
Type | Name | Description |
---|---|---|
TransactionGetResult | doc | The TransactionGetResult of a document previously looked up in this transaction. |
object | content | The updated content. |
IRequestSpan | parentSpan | The optional parent tracing span. |
Returns
Type | Description |
---|---|
Task<TransactionGetResult> | A TransactionGetResult reflecting the updated content. |
RollbackAsync(IRequestSpan?)
Rollback the transaction, explicitly.
Declaration
public Task RollbackAsync(IRequestSpan? parentSpan = null)
Parameters
Type | Name | Description |
---|---|---|
IRequestSpan | parentSpan | The optional parent tracing span. |
Returns
Type | Description |
---|---|
Task | A task representing the asynchronous work. |
Remarks
Calling this method on AttemptContext is usually unnecessary, as unhandled exceptions will trigger a rollback automatically.