public sealed class DatastoreDbImpl : DatastoreDbReference documentation and code samples for the Google Cloud Datastore v1 API class DatastoreDbImpl.
Wrapper around DatastoreClient to provide simpler operations.
Namespace
Google.Cloud.Datastore.V1Assembly
Google.Cloud.Datastore.V1.dll
Remarks
This is the "default" implementation of DatastoreDb. Most client code should refer to DatastoreDb, creating instances with Create(string, string, DatastoreClient). The constructor of this class is public for the sake of constructor-based dependency injection.
Constructors
DatastoreDbImpl(string, string, DatastoreClient)
public DatastoreDbImpl(string projectId, string namespaceId, DatastoreClient client)Constructs an instance from the given project ID, namespace ID and client.
| Parameters | |
|---|---|
| Name | Description |
projectId |
stringThe project ID. Must not be null. |
namespaceId |
stringThe namespace ID. Must not be null. |
client |
DatastoreClientThe client to use for underlying operations. Must not be null. |
This constructor is primarily provided for constructor-based dependency injection. The static Create(string, string, DatastoreClient) method is provided for manually obtaining an instance, including automatic client creation.
DatastoreDbImpl(string, string, string, DatastoreClient)
public DatastoreDbImpl(string projectId, string namespaceId, string databaseId, DatastoreClient client)Constructs an instance from the given project ID, namespace ID and client.
| Parameters | |
|---|---|
| Name | Description |
projectId |
stringThe project ID. Must not be null. |
namespaceId |
stringThe namespace ID. Must not be null. |
databaseId |
stringThe database ID. Must not be null. |
client |
DatastoreClientThe client to use for underlying operations. Must not be null. |
Properties
Client
public override DatastoreClient Client { get; }The DatastoreClient used for all remote operations.
| Property Value | |
|---|---|
| Type | Description |
DatastoreClient |
|
DatabaseId
public override string DatabaseId { get; }The ID of the database against which the request is to be made.
| Property Value | |
|---|---|
| Type | Description |
string |
|
NamespaceId
public override string NamespaceId { get; }The ID of the namespace this instance operates on.
| Property Value | |
|---|---|
| Type | Description |
string |
|
ProjectId
public override string ProjectId { get; }The ID of the project this instance operates on.
| Property Value | |
|---|---|
| Type | Description |
string |
|
Methods
AllocateIds(IEnumerable<Key>, CallSettings)
public override IReadOnlyList<Key> AllocateIds(IEnumerable<Key> keys, CallSettings callSettings = null)Allocates IDs for a collection of incomplete keys.
| Parameters | |
|---|---|
| Name | Description |
keys |
IEnumerableKeyThe incomplete keys. Must not be null or contain null elements. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
IReadOnlyListKey |
A collection of complete keys with allocated IDs, in the same order as |
Datastore limits the number of keys that can be allocated in a single operation. When allocating a large number of keys, partition the allocations into batches. See Datastore limits for more details on Datastore limits.
AllocateIdsAsync(IEnumerable<Key>, CallSettings)
public override Task<IReadOnlyList<Key>> AllocateIdsAsync(IEnumerable<Key> keys, CallSettings callSettings = null)Allocates IDs for a collection of incomplete keys asynchronously.
| Parameters | |
|---|---|
| Name | Description |
keys |
IEnumerableKeyThe incomplete keys. Must not be null or contain null elements. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
TaskIReadOnlyListKey |
A collection of complete keys with allocated IDs, in the same order as |
Datastore limits the number of keys that can be allocated in a single operation. When allocating a large number of keys, partition the allocations into batches. See Datastore limits for more details on Datastore limits.
BeginTransaction(CallSettings)
public override DatastoreTransaction BeginTransaction(CallSettings callSettings = null)Begins a transaction, returning a DatastoreTransaction which can be used to operate on the transaction.
| Parameter | |
|---|---|
| Name | Description |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
DatastoreTransaction |
A new DatastoreTransaction for this object's project. |
BeginTransaction(TransactionOptions, CallSettings)
public override DatastoreTransaction BeginTransaction(TransactionOptions options, CallSettings callSettings = null)Begins a transaction, returning a DatastoreTransaction which can be used to operate on the transaction.
| Parameters | |
|---|---|
| Name | Description |
options |
TransactionOptionsThe options for the new transaction. May be null, for default options. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
DatastoreTransaction |
A new DatastoreTransaction for this object's project. |
BeginTransactionAsync(CallSettings)
public override Task<DatastoreTransaction> BeginTransactionAsync(CallSettings callSettings = null)Begins a transaction asynchronously, returning a DatastoreTransaction which can be used to operate on the transaction.
| Parameter | |
|---|---|
| Name | Description |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
TaskDatastoreTransaction |
A new DatastoreTransaction for this object's project. |
BeginTransactionAsync(TransactionOptions, CallSettings)
public override Task<DatastoreTransaction> BeginTransactionAsync(TransactionOptions options, CallSettings callSettings = null)Begins a transaction asynchronously, returning a DatastoreTransaction which can be used to operate on the transaction.
| Parameters | |
|---|---|
| Name | Description |
options |
TransactionOptionsThe options for the new transaction. May be null, for default options. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
TaskDatastoreTransaction |
A new DatastoreTransaction for this object's project. |
CreateKeyFactory(string)
public override KeyFactory CreateKeyFactory(string kind)Creates a key factory for root entities in this objects's partition.
| Parameter | |
|---|---|
| Name | Description |
kind |
stringThe kind of entity key to create. Must not be null. |
| Returns | |
|---|---|
| Type | Description |
KeyFactory |
A key factory with the specified kind and this object's partition. |
Delete(IEnumerable<Entity>, CallSettings)
public override void Delete(IEnumerable<Entity> entities, CallSettings callSettings = null)Deletes a collection of entities, non-transactionally.
| Parameters | |
|---|---|
| Name | Description |
entities |
IEnumerableEntityThe entities to delete. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
Datastore limits the number of entities that can be modified in a Commit operation. Although this method does not use an existing transaction, it still performs all the work in a single Commit operation. When modifying a large number of entities, partition the changes into batches. See Datastore limits for more details on Datastore limits.
Delete(IEnumerable<Key>, CallSettings)
public override void Delete(IEnumerable<Key> keys, CallSettings callSettings = null)Deletes a collection of keys, non-transactionally.
| Parameters | |
|---|---|
| Name | Description |
keys |
IEnumerableKeyThe keys to delete. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
Datastore limits the number of entities that can be modified in a Commit operation. Although this method does not use an existing transaction, it still performs all the work in a single Commit operation. When modifying a large number of entities, partition the changes into batches. See Datastore limits for more details on Datastore limits.
DeleteAsync(IEnumerable<Entity>, CallSettings)
public override Task DeleteAsync(IEnumerable<Entity> entities, CallSettings callSettings = null)Deletes a collection of entities, non-transactionally and asynchronously.
| Parameters | |
|---|---|
| Name | Description |
entities |
IEnumerableEntityThe entities to delete. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
Task |
A task representing the asynchronous operation. |
Datastore limits the number of entities that can be modified in a Commit operation. Although this method does not use an existing transaction, it still performs all the work in a single Commit operation. When modifying a large number of entities, partition the changes into batches. See Datastore limits for more details on Datastore limits.
DeleteAsync(IEnumerable<Key>, CallSettings)
public override Task DeleteAsync(IEnumerable<Key> keys, CallSettings callSettings = null)Deletes a collection of keys, non-transactionally and asynchronously.
| Parameters | |
|---|---|
| Name | Description |
keys |
IEnumerableKeyThe keys to delete. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
Task |
|
Datastore limits the number of entities that can be modified in a Commit operation. Although this method does not use an existing transaction, it still performs all the work in a single Commit operation. When modifying a large number of entities, partition the changes into batches. See Datastore limits for more details on Datastore limits.
Insert(IEnumerable<Entity>, CallSettings)
public override IReadOnlyList<Key> Insert(IEnumerable<Entity> entities, CallSettings callSettings = null)Inserts a collection of entities, non-transactionally.
| Parameters | |
|---|---|
| Name | Description |
entities |
IEnumerableEntityThe entities to insert. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
IReadOnlyListKey |
A collection of keys of inserted entities, in the same order as |
On success, the entities will be updated in memory with the server-allocated keys.
Datastore limits the number of entities that can be modified in a Commit operation. Although this method does not use an existing transaction, it still performs all the work in a single Commit operation. When modifying a large number of entities, partition the changes into batches. See Datastore limits for more details on Datastore limits.
InsertAsync(IEnumerable<Entity>, CallSettings)
public override Task<IReadOnlyList<Key>> InsertAsync(IEnumerable<Entity> entities, CallSettings callSettings = null)Inserts a collection of entities, non-transactionally and asynchronously.
| Parameters | |
|---|---|
| Name | Description |
entities |
IEnumerableEntityThe entities to insert. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
TaskIReadOnlyListKey |
A task representing the asynchronous operation. The result of the task is
a collection of keys of inserted entities, in the same order as |
On success, the entities will be updated in memory with the server-allocated keys.
Datastore limits the number of entities that can be looked up in a single operation. When looking up a large number of entities, partition the look-ups into batches. See Datastore limits for more details on Datastore limits.
Lookup(IEnumerable<Key>, ReadConsistency?, CallSettings)
public override IReadOnlyList<Entity> Lookup(IEnumerable<Key> keys, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Looks up a collection of entities by key.
| Parameters | |
|---|---|
| Name | Description |
keys |
IEnumerableKeyThe keys to look up. Must not be null, and every element must be non-null and refer to a complete key. |
readConsistency |
ReadOptionsTypesReadConsistencyThe desired read consistency of the lookup, or null to use the default. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
IReadOnlyListEntity |
A collection of entities with the same size as |
This call may perform multiple RPC operations in order to look up all keys.
Datastore limits the number of entities that can be looked up in a single operation. When looking up a large number of entities, partition the look-ups into batches. See Datastore limits for more details on Datastore limits.
LookupAsync(IEnumerable<Key>, ReadConsistency?, CallSettings)
public override Task<IReadOnlyList<Entity>> LookupAsync(IEnumerable<Key> keys, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Looks up a collection of entities by key asynchronously.
| Parameters | |
|---|---|
| Name | Description |
keys |
IEnumerableKeyThe keys to look up. Must not be null, and every element must be non-null and refer to a complete key. |
readConsistency |
ReadOptionsTypesReadConsistencyThe desired read consistency of the lookup, or null to use the default. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
TaskIReadOnlyListEntity |
A collection of entities with the same size as |
This call may perform multiple RPC operations in order to look up all keys.
Datastore limits the number of entities that can be looked up in a single operation. When looking up a large number of entities, partition the look-ups into batches. See Datastore limits for more details on Datastore limits.
RunAggregationQuery(AggregationQuery, ReadConsistency?, CallSettings)
public override AggregationQueryResults RunAggregationQuery(AggregationQuery query, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Executes the given structured query.
| Parameters | |
|---|---|
| Name | Description |
query |
AggregationQueryThe query to execute. Must not be null. |
readConsistency |
ReadOptionsTypesReadConsistencyIf not null, overrides the read consistency of the query. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
AggregationQueryResults |
An AggregationQueryResults holds result of aggregations. |
RunAggregationQuery(DatastoreQuery, CallSettings)
public override AggregationQueryResults RunAggregationQuery(DatastoreQuery query, CallSettings callSettings = null)Executes the given query.
| Parameters | |
|---|---|
| Name | Description |
query |
DatastoreQueryThe query to execute. Must not be null. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
AggregationQueryResults |
An AggregationQueryResults holds result of aggregations. |
RunAggregationQuery(GqlQuery, ReadConsistency?, CallSettings)
public override AggregationQueryResults RunAggregationQuery(GqlQuery query, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Executes the given GQL query.
| Parameters | |
|---|---|
| Name | Description |
query |
GqlQueryThe query to execute. Must not be null. |
readConsistency |
ReadOptionsTypesReadConsistencyIf not null, overrides the read consistency of the query. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
AggregationQueryResults |
An AggregationQueryResults holds result of aggregations. |
RunAggregationQueryAsync(AggregationQuery, ReadConsistency?, CallSettings)
public override Task<AggregationQueryResults> RunAggregationQueryAsync(AggregationQuery query, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Executes the given structured query.
| Parameters | |
|---|---|
| Name | Description |
query |
AggregationQueryThe query to execute. Must not be null. |
readConsistency |
ReadOptionsTypesReadConsistencyIf not null, overrides the read consistency of the query. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
TaskAggregationQueryResults |
An AggregationQueryResults holds result of aggregations. |
RunAggregationQueryAsync(DatastoreQuery, CallSettings)
public override Task<AggregationQueryResults> RunAggregationQueryAsync(DatastoreQuery query, CallSettings callSettings = null)Executes the given query.
| Parameters | |
|---|---|
| Name | Description |
query |
DatastoreQueryThe query to execute. Must not be null. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
TaskAggregationQueryResults |
An AggregationQueryResults holds result of aggregations. |
RunAggregationQueryAsync(GqlQuery, ReadConsistency?, CallSettings)
public override Task<AggregationQueryResults> RunAggregationQueryAsync(GqlQuery query, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Executes the given GQL query.
| Parameters | |
|---|---|
| Name | Description |
query |
GqlQueryThe query to execute. Must not be null. |
readConsistency |
ReadOptionsTypesReadConsistencyIf not null, overrides the read consistency of the query. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
TaskAggregationQueryResults |
An AggregationQueryResults holds result of aggregations. |
RunQueryLazily(DatastoreQuery, CallSettings)
public override LazyDatastoreQuery RunQueryLazily(DatastoreQuery query, CallSettings callSettings = null)Lazily executes the given structured query.
| Parameters | |
|---|---|
| Name | Description |
query |
DatastoreQueryThe query to execute. Must not be null. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
LazyDatastoreQuery |
A LazyDatastoreQuery representing the lazy query results. |
The results are requested lazily: no API calls will be made until the application starts iterating over the results. Iterating over the same LazyDatastoreQuery object multiple times will execute the query again, potentially returning different results.
RunQueryLazily(GqlQuery, ReadConsistency?, CallSettings)
public override LazyDatastoreQuery RunQueryLazily(GqlQuery gqlQuery, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Lazily executes the given GQL query for asynchronous consumption.
| Parameters | |
|---|---|
| Name | Description |
gqlQuery |
GqlQueryThe query to execute. Must not be null. |
readConsistency |
ReadOptionsTypesReadConsistencyIf not null, overrides the read consistency of the query. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
LazyDatastoreQuery |
A LazyDatastoreQuery representing the lazy query results. |
The results are requested lazily: no API calls will be made until the application starts iterating over the results. Iterating over the same LazyDatastoreQuery object multiple times will execute the query again, potentially returning different results.
RunQueryLazily(Query, ReadConsistency?, CallSettings)
public override LazyDatastoreQuery RunQueryLazily(Query query, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Lazily executes the given structured query.
| Parameters | |
|---|---|
| Name | Description |
query |
QueryThe query to execute. Must not be null. |
readConsistency |
ReadOptionsTypesReadConsistencyIf not null, overrides the read consistency of the query. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
LazyDatastoreQuery |
A LazyDatastoreQuery representing the lazy query results. |
The results are requested lazily: no API calls will be made until the application starts iterating over the results. Iterating over the same LazyDatastoreQuery object multiple times will execute the query again, potentially returning different results.
RunQueryLazilyAsync(DatastoreQuery, CallSettings)
public override AsyncLazyDatastoreQuery RunQueryLazilyAsync(DatastoreQuery query, CallSettings callSettings = null)Lazily executes the given structured query for asynchronous consumption.
| Parameters | |
|---|---|
| Name | Description |
query |
DatastoreQueryThe query to execute. Must not be null. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
AsyncLazyDatastoreQuery |
An AsyncLazyDatastoreQuery representing the lazy query results. |
The results are requested lazily: no API calls will be made until the application starts iterating over the results. Iterating over the same LazyDatastoreQuery object multiple times will execute the query again, potentially returning different results.
RunQueryLazilyAsync(GqlQuery, ReadConsistency?, CallSettings)
public override AsyncLazyDatastoreQuery RunQueryLazilyAsync(GqlQuery gqlQuery, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Lazily executes the given GQL query for asynchronous consumption.
| Parameters | |
|---|---|
| Name | Description |
gqlQuery |
GqlQueryThe query to execute. Must not be null. |
readConsistency |
ReadOptionsTypesReadConsistencyIf not null, overrides the read consistency of the query. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
AsyncLazyDatastoreQuery |
An AsyncLazyDatastoreQuery representing the lazy query results. |
The results are requested lazily: no API calls will be made until the application starts iterating over the results. Iterating over the same LazyDatastoreQuery object multiple times will execute the query again, potentially returning different results.
RunQueryLazilyAsync(Query, ReadConsistency?, CallSettings)
public override AsyncLazyDatastoreQuery RunQueryLazilyAsync(Query query, ReadOptions.Types.ReadConsistency? readConsistency = null, CallSettings callSettings = null)Lazily executes the given structured query for asynchronous consumption.
| Parameters | |
|---|---|
| Name | Description |
query |
QueryThe query to execute. Must not be null. |
readConsistency |
ReadOptionsTypesReadConsistencyIf not null, overrides the read consistency of the query. |
callSettings |
CallSettingsIf not null, applies overrides to RPC calls. |
| Returns | |
|---|---|
| Type | Description |
AsyncLazyDatastoreQuery |
An AsyncLazyDatastoreQuery representing the lazy query results. |
The results are requested lazily: no API calls will be made until the application starts iterating over the results. Iterating over the same LazyDatastoreQuery object multiple times will execute the query again, potentially returning different results.
Update(IEnumerable<Entity>, CallSettings)
public override void Update(IEnumerable<Entity> entities, CallSettings callSettings = null)Updates a collection of entities, non-transactionally.
| Parameters | |
|---|---|
| Name | Description |
entities |
IEnumerableEntityThe entities to update. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
Datastore limits the number of entities that can be looked up in a single operation. When looking up a large number of entities, partition the look-ups into batches. See Datastore limits for more details on Datastore limits.
UpdateAsync(IEnumerable<Entity>, CallSettings)
public override Task UpdateAsync(IEnumerable<Entity> entities, CallSettings callSettings = null)Updates a collection of entities, non-transactionally and asynchronously.
| Parameters | |
|---|---|
| Name | Description |
entities |
IEnumerableEntityThe entities to update. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
Task |
A task representing the asynchronous operation. |
Datastore limits the number of entities that can be modified in a Commit operation. Although this method does not use an existing transaction, it still performs all the work in a single Commit operation. When modifying a large number of entities, partition the changes into batches. See Datastore limits for more details on Datastore limits.
Upsert(IEnumerable<Entity>, CallSettings)
public override IReadOnlyList<Key> Upsert(IEnumerable<Entity> entities, CallSettings callSettings = null)Upserts a collection of entities, non-transactionally.
| Parameters | |
|---|---|
| Name | Description |
entities |
IEnumerableEntityThe entities to upsert. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
IReadOnlyListKey |
A collection of allocated keys, in the same order as |
On success, any entities with incomplete keys will be updated in memory with the server-allocated keys.
Datastore limits the number of entities that can be modified in a Commit operation. Although this method does not use an existing transaction, it still performs all the work in a single Commit operation. When modifying a large number of entities, partition the changes into batches. See Datastore limits for more details on Datastore limits.
UpsertAsync(IEnumerable<Entity>, CallSettings)
public override Task<IReadOnlyList<Key>> UpsertAsync(IEnumerable<Entity> entities, CallSettings callSettings = null)Upserts a collection of entities, non-transactionally and asynchronously.
| Parameters | |
|---|---|
| Name | Description |
entities |
IEnumerableEntityThe entities to upsert. Must not be null or contain null entries. |
callSettings |
CallSettingsIf not null, applies overrides to this RPC call. |
| Returns | |
|---|---|
| Type | Description |
TaskIReadOnlyListKey |
A task representing the asynchronous operation. The result of the task is
a collection of allocated keys, in the same order as |
On success, any entities with incomplete keys will be updated with the server-allocated keys.
Datastore limits the number of entities that can be modified in a Commit operation. Although this method does not use an existing transaction, it still performs all the work in a single Commit operation. When modifying a large number of entities, partition the changes into batches. See Datastore limits for more details on Datastore limits.