

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Arbeiten mit Elementen: .NET
<a name="LowLevelDotNetItemCRUD"></a>

Sie können die AWS SDK für .NET Low-Level-API verwenden, um typische Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge (CRUD) für ein Element in einer Tabelle durchzuführen. Nachfolgend sind die üblichen Schritte zum Ausführen von CRUD-Operationen mit der .NET-Low-Level-API ausführen:

1. Erstellen einer Instance der `AmazonDynamoDBClient`-Klasse (Client).

1. Geben Sie die für die Operation spezifischen, erforderlichen Parameter in einem entsprechenden Anforderungsobjekt an.

   Verwenden Sie z. B. das `PutItemRequest`-Anforderungsobjekt zum Hochladen eines Elements und das `GetItemRequest`-Anforderungsobjekt, wenn Sie ein vorhandenes Element abrufen. 

   Mit dem Anforderungsobjekt können Sie sowohl die erforderlichen als auch die optionalen Parameter angeben. 

1. Führen Sie die vom Client bereitgestellte, geeignete Methode aus, indem Sie das Anforderungsobjekt, das Sie im vorhergehenden Schritt erstellt haben, übergeben. 

   Der `AmazonDynamoDBClient`-Client bietet die Methoden `PutItem`, `GetItem`, `UpdateItem` und `DeleteItem` für die CRUD-Operationen.

**Topics**
+ [Einfügen eines Elements](#PutItemLowLevelAPIDotNet)
+ [Abrufen eines Elements](#GetItemLowLevelDotNET)
+ [Aktualisieren eines Elements](#UpdateItemLowLevelDotNet)
+ [Unteilbarer Zähler](#AtomicCounterLowLevelDotNet)
+ [Löschen eines Elements](#DeleteMidLevelDotNet)
+ [Batch Write: Einfügen und Löschen mehrerer Elemente](#BatchWriteLowLevelDotNet)
+ [Batch Get: Abrufen mehrerer Elemente](#BatchGetLowLevelDotNet)
+ [Beispiel: CRUD-Operationen unter Verwendung der AWS SDK für .NET Low-Level-API](LowLevelDotNetItemsExample.md)
+ [Beispiel: Batch-Operationen mit der AWS SDK für .NET Low-Level-API](batch-operation-lowlevel-dotnet.md)
+ [Beispiel: Umgang mit binären Attributen mithilfe der AWS SDK für .NET Low-Level-API](LowLevelDotNetBinaryTypeExample.md)

## Einfügen eines Elements
<a name="PutItemLowLevelAPIDotNet"></a>

Mit der `PutItem`-Methode wird ein Element in eine Tabelle hochgeladen. Wenn das Element bereits vorhanden ist, wird das ganze Element ersetzt.

**Anmerkung**  
Anstatt das gesamte Element zu ersetzen und nur spezifische Attribute zu aktualisieren, können Sie die Methode `UpdateItem` verwenden. Weitere Informationen finden Sie unter [Aktualisieren eines Elements](#UpdateItemLowLevelDotNet).

Im Folgenden finden Sie die Schritte zum Hochladen eines Elements mithilfe der .NET SDK-API auf niedriger Ebene:

1. Erstellen Sie eine Instance der `AmazonDynamoDBClient`-Klasse.

1. Stellen Sie die erforderlichen Parameter bereit, in dem Sie eine Instance der `PutItemRequest`-Klasse erstellen.

   Um für ein Element eine PUT-Operation auszuführen, müssen Sie den Tabellennamen und das Element angeben. 

1. Führen Sie die `PutItem`-Methode aus, indem Sie das `PutItemRequest`-Objekt bereitstellen, das Sie im vorherigen Schritt erstellt haben.

Im folgenden C\$1-Codebeispiel werden die vorherigen Schritte veranschaulicht. Das Beispiel lädt ein Element in die `ProductCatalog`-Tabelle hoch.

**Example**  

```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
string tableName = "ProductCatalog";

var request = new PutItemRequest
{
   TableName = tableName,
   Item = new Dictionary<string, AttributeValue>()
      {
          { "Id", new AttributeValue { N = "201" }},
          { "Title", new AttributeValue { S = "Book 201 Title" }},
          { "ISBN", new AttributeValue { S = "11-11-11-11" }},
          { "Price", new AttributeValue { S = "20.00" }},
          {
            "Authors",
            new AttributeValue
            { SS = new List<string>{"Author1", "Author2"}   }
          }
      }
};
client.PutItem(request);
```

Im vorherigen Beispiel laden Sie ein Buchelement mit den Attributen `Id`, `Title`, `ISBN` und `Authors` hoch. Beachten Sie, dass `Id` ein Attribut vom Typ Zahl ist. Alle anderen Attribute sind vom Typ Zeichenfolge. Autoren ist eine `String`-Einstellung.

### Angeben eines optionalen Parameters
<a name="PutItemLowLevelAPIDotNetOptions"></a>

Sie können mit dem `PutItemRequest`-Objekt auch optionale Parameter angeben, wie im folgenden C\$1-Beispiel dargestellt. Das Beispiel gibt die folgenden optionalen Parameter an:
+ `ExpressionAttributeNames`, `ExpressionAttributeValues` und `ConditionExpression` geben an, dass das Element nur ersetzt werden kann, wenn das vorhandene Element das Attribut "ISBN" mit einem spezifischen Wert besitzt.
+ Mit dem Parameter `ReturnValues` wird das alte Element in der Antwort angefordert.

**Example**  

```
var request = new PutItemRequest
 {
   TableName = tableName,
   Item = new Dictionary<string, AttributeValue>()
               {
                   { "Id", new AttributeValue { N = "104" }},
                   { "Title", new AttributeValue { S = "Book 104  Title" }},
                   { "ISBN", new AttributeValue { S = "444-4444444444" }},
                   { "Authors",
                     new AttributeValue { SS = new List<string>{"Author3"}}}
               },
    // Optional parameters.
    ExpressionAttributeNames = new Dictionary<string,string>()
    {
        {"#I", "ISBN"}
    },
    ExpressionAttributeValues = new Dictionary<string, AttributeValue>()
    {
        {":isbn",new AttributeValue {S = "444-4444444444"}}
    },
    ConditionExpression = "#I = :isbn"

};
var response = client.PutItem(request);
```

Weitere Informationen finden Sie unter [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html).

## Abrufen eines Elements
<a name="GetItemLowLevelDotNET"></a>

Die `GetItem`-Methode ruft ein Element ab.

**Anmerkung**  
Um mehrere Elemente abzurufen, können Sie die `BatchGetItem`-Methode verwenden. Weitere Informationen finden Sie unter [Batch Get: Abrufen mehrerer Elemente](#BatchGetLowLevelDotNet).

Im Folgenden werden die Schritte zum Abrufen eines vorhandenen Elements mithilfe des AWS SDK für .NET -Low-Level-API beschrieben.

1. Erstellen Sie eine Instance der `AmazonDynamoDBClient`-Klasse.

1. Stellen Sie die erforderlichen Parameter bereit, in dem Sie eine Instance der `GetItemRequest`-Klasse erstellen.

   Zum Abrufen eines Elements müssen Sie den Tabellennamen und den Primärschlüssel des Elements angeben. 

1. Führen Sie die `GetItem`-Methode aus, indem Sie das `GetItemRequest`-Objekt bereitstellen, das Sie im vorherigen Schritt erstellt haben.

Im folgenden C\$1-Codebeispiel werden die vorherigen Schritte veranschaulicht. Das Beispiel ruft ein Objekt aus der `ProductCatalog`-Tabelle ab.

```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
string tableName = "ProductCatalog";

var request = new GetItemRequest
 {
   TableName = tableName,
   Key = new Dictionary<string,AttributeValue>() { { "Id", new AttributeValue { N = "202" } } },
 };
 var response = client.GetItem(request);

// Check the response.
var result = response.GetItemResult;
var attributeMap = result.Item; // Attribute list in the response.
```

### Angeben eines optionalen Parameters
<a name="GetItemLowLevelDotNETOptions"></a>

Sie können mit dem `GetItemRequest`-Objekt auch optionale Parameter angeben, wie im folgenden C\$1-Beispiel dargestellt. Das Beispiel gibt die folgenden optionalen Parameter an:
+ `ProjectionExpression` Parameter, um die abzurufenden Attribute anzugeben.
+ `ConsistentRead` Parameter zum Ausführen eines Strongly-Consistent-Lesevorgangs. Weitere Informationen zur Lesekonsistenz finden Sie unter [DynamoDB-Lesekonsistenz](HowItWorks.ReadConsistency.md).

**Example**  

```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
string tableName = "ProductCatalog";

var request = new GetItemRequest
 {
   TableName = tableName,
   Key = new Dictionary<string,AttributeValue>() { { "Id", new AttributeValue { N = "202" } } },
   // Optional parameters.
   ProjectionExpression = "Id, ISBN, Title, Authors",
   ConsistentRead = true
 };

 var response = client.GetItem(request);

// Check the response.
var result = response.GetItemResult;
var attributeMap = result.Item;
```

Weitere Informationen finden Sie unter [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html).

## Aktualisieren eines Elements
<a name="UpdateItemLowLevelDotNet"></a>

Mit der `UpdateItem`-Methode wird ein bestehendes Element aktualisiert, wenn es vorhanden ist. Sie können die `UpdateItem`-Operation verwenden, um vorhandene Attributwerte zu aktualisieren, der vorhandenen Sammlung neue Attribute hinzuzufügen oder Attribute aus der vorhandenen Sammlung zu löschen. Wenn das Element, das den bestimmten Primärschlüssel besitzt, nicht gefunden wird, wird ein neues Element hinzugefügt.

Die `UpdateItem`-Operation verwendet folgende Leitlinien:
+ Wenn das Element nicht vorhanden ist, fügt `UpdateItem` ein neues Element hinzu, indem der in der Eingabe angegebene Primärschlüssel genutzt wird.
+ Wenn das Element vorhanden ist, wendet `UpdateItem` die Aktualisierung wie folgt an:
  + Ersetzt die vorhandenen Attributwerte durch die Werte in der Aktualisierung.
  + Wenn das Attribut, das Sie in der Eingabe angegeben haben, nicht vorhanden ist, wird dem Element ein neues Attribut hinzugefügt.
  + Wenn das Eingabeattribut Null ist, wird das Attribut gelöscht, sofern es vorhanden ist. 
  + Wenn Sie `ADD` für die Aktion `Action` verwenden, können Sie einem vorhandenen Satz (Zeichenfolgen- oder Zahlensatz) Werte hinzufügen oder mathematisch addieren (unter Verwendung einer positiven Zahl) bzw. von dem vorhandenen numerischen Attributwert subtrahieren (unter Verwendung einer negativen Zahl).

**Anmerkung**  
Die `PutItem`-Operation kann auch eine Aktualisierung durchführen. Weitere Informationen finden Sie unter [Einfügen eines Elements](#PutItemLowLevelAPIDotNet). Wenn Sie z. B. `PutItem` aufrufen, um ein Element hochzuladen, und der Primärschlüssel vorhanden ist, ersetzt die `PutItem`-Operation das gesamte Element. Wenn das vorhandene Element Attribute entiert und diese Attribute nicht in der Eingabe angegeben sind, werden diese Attribute vom `PutItem`-Vorgang gelöscht. Jedoch aktualisiert `UpdateItem` lediglich die angegebenen Eingabeattribute. Alle anderen vorhandenen Attribute dieses Elements bleiben unverändert. 

Im Folgenden werden die Schritte zum Aktualisieren eines vorhandenen Elements mithilfe der Low-Level-.NET.SDK-API beschrieben.

1. Erstellen Sie eine Instance der `AmazonDynamoDBClient`-Klasse.

1. Stellen Sie die erforderlichen Parameter bereit, in dem Sie eine Instance der `UpdateItemRequest`-Klasse erstellen.

   Dies ist das Anforderungsobjekt, in dem Sie alle Aktualisierungen beschreiben, z. B. Attribute hinzufügen, vorhandene Attribute aktualisieren oder Attribute löschen. Um ein vorhandenes Attribut zu löschen, geben Sie den Attributnamen mit Nullwert an. 

1. Führen Sie die `UpdateItem`-Methode aus, indem Sie das `UpdateItemRequest`-Objekt bereitstellen, das Sie im vorherigen Schritt erstellt haben. 

Im folgenden C\$1-Codebeispiel werden die vorherigen Schritte veranschaulicht. Im Beispiel wird ein Buchelement in der `ProductCatalog`-Tabelle aktualisiert. Es fügt der `Authors`-Auflistung einen neuen Autor hinzu und löscht das vorhandene `ISBN`-Attribut. Darüber hinaus wird auch der Preis um eins gesenkt.



```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
string tableName = "ProductCatalog";

var request = new UpdateItemRequest
{
    TableName = tableName,
    Key = new Dictionary<string,AttributeValue>() { { "Id", new AttributeValue { N = "202" } } },
    ExpressionAttributeNames = new Dictionary<string,string>()
    {
        {"#A", "Authors"},
        {"#P", "Price"},
        {"#NA", "NewAttribute"},
        {"#I", "ISBN"}
    },
    ExpressionAttributeValues = new Dictionary<string, AttributeValue>()
    {
        {":auth",new AttributeValue { SS = {"Author YY","Author ZZ"}}},
        {":p",new AttributeValue {N = "1"}},
        {":newattr",new AttributeValue {S = "someValue"}},
    },

    // This expression does the following:
    // 1) Adds two new authors to the list
    // 2) Reduces the price
    // 3) Adds a new attribute to the item
    // 4) Removes the ISBN attribute from the item
    UpdateExpression = "ADD #A :auth SET #P = #P - :p, #NA = :newattr REMOVE #I"
};
var response = client.UpdateItem(request);
```

### Angeben eines optionalen Parameters
<a name="UpdateItemLowLevelDotNETOptions"></a>

Sie können auch optionale Parameter mithilfe des `UpdateItemRequest`-Objekts bereitstellen, wie im folgenden C\$1-Beispiel gezeigt. Folgende optionale Parameter werden angegeben:
+ `ExpressionAttributeValues` und `ConditionExpression`, um festzulegen, dass der Preis nur aktualisiert werden kann, wenn er momentan 20,00 beträgt.
+ Der Parameter `ReturnValues` zum Anfordern des aktualisierten Elements in der Antwort. 

**Example**  

```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
string tableName = "ProductCatalog";

var request = new UpdateItemRequest
{
    Key = new Dictionary<string,AttributeValue>() { { "Id", new AttributeValue { N = "202" } } },

    // Update price only if the current price is 20.00.
    ExpressionAttributeNames = new Dictionary<string,string>()
    {
        {"#P", "Price"}
    },
    ExpressionAttributeValues = new Dictionary<string, AttributeValue>()
    {
        {":newprice",new AttributeValue {N = "22"}},
        {":currprice",new AttributeValue {N = "20"}}
    },
    UpdateExpression = "SET #P = :newprice",
    ConditionExpression = "#P = :currprice",
    TableName = tableName,
    ReturnValues = "ALL_NEW" // Return all the attributes of the updated item.
};

var response = client.UpdateItem(request);
```

Weitere Informationen finden Sie unter [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html). 

## Unteilbarer Zähler
<a name="AtomicCounterLowLevelDotNet"></a>

Sie können `updateItem` verwenden, um einen unteilbaren Zähler zu implementieren, mit dem der Wert eines bestehenden Attributs erhöht oder verringert wird, ohne andere Schreibanforderungen zu beeinflussen. Um einen Atomzähler zu aktualisieren, verwenden Sie `updateItem` mit einem Attribut vom Typ `Number` im Parameter `UpdateExpression` und `ADD` als `Action`.

Das folgende Codebeispiel zeigt diesen Vorgang und erhöht das Attribut `Quantity` um eins.

```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
string tableName = "ProductCatalog";

var request = new UpdateItemRequest
{
    Key = new Dictionary<string, AttributeValue>() { { "Id", new AttributeValue { N = "121" } } },
    ExpressionAttributeNames = new Dictionary<string, string>()
    {
        {"#Q", "Quantity"}
    },
    ExpressionAttributeValues = new Dictionary<string, AttributeValue>()
    {
        {":incr",new AttributeValue {N = "1"}}
    },
    UpdateExpression = "SET #Q = #Q + :incr",
    TableName = tableName
};

var response = client.UpdateItem(request);
```

## Löschen eines Elements
<a name="DeleteMidLevelDotNet"></a>

Die `DeleteItem`-Methode löscht ein Element aus einer Tabelle. 

Im Folgenden werden die Schritte zum Löschen eines Elements mithilfe der .NET SDK-Low-Level-API beschrieben. 

1. Erstellen Sie eine Instance der `AmazonDynamoDBClient`-Klasse.

1. Stellen Sie die erforderlichen Parameter bereit, in dem Sie eine Instance der `DeleteItemRequest`-Klasse erstellen.

    Zum Löschen eines Elements sind der Tabellenname und der Primärschlüssel des Elements erforderlich. 

1. Führen Sie die `DeleteItem`-Methode aus, indem Sie das `DeleteItemRequest`-Objekt bereitstellen, das Sie im vorherigen Schritt erstellt haben. 

**Example**  

```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
string tableName = "ProductCatalog";

var request = new DeleteItemRequest
{
    TableName = tableName,
    Key = new Dictionary<string,AttributeValue>() { { "Id", new AttributeValue { N = "201" } } },
};

var response = client.DeleteItem(request);
```

### Angeben eines optionalen Parameters
<a name="DeleteItemLowLevelDotNETOptions"></a>

Sie können mit dem `DeleteItemRequest`-Objekt auch optionale Parameter angeben, wie im folgenden C\$1-Beispiel dargestellt. Folgende optionale Parameter werden angegeben:
+ `ExpressionAttributeValues`und `ConditionExpression` um anzugeben, dass das Buchelement nur gelöscht werden kann, wenn es nicht mehr veröffentlicht wird (der InPublication Attributwert ist falsch). 
+ Der Parameter `ReturnValues` zum Anfordern des gelöschten Elements in der Antwort.

**Example**  

```
var request = new DeleteItemRequest
{
    TableName = tableName,
    Key = new Dictionary<string,AttributeValue>() { { "Id", new AttributeValue { N = "201" } } },

    // Optional parameters.
    ReturnValues = "ALL_OLD",
    ExpressionAttributeNames = new Dictionary<string, string>()
    {
        {"#IP", "InPublication"}
    },
    ExpressionAttributeValues = new Dictionary<string, AttributeValue>()
    {
        {":inpub",new AttributeValue {BOOL = false}}
    },
    ConditionExpression = "#IP = :inpub"
};

var response = client.DeleteItem(request);
```

Weitere Informationen finden Sie unter [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html).

## Batch Write: Einfügen und Löschen mehrerer Elemente
<a name="BatchWriteLowLevelDotNet"></a>

*Batch Write* bezieht sich auf das Einfügen und Löschen mehrerer Elemente in einem Batch. Die `BatchWriteItem`-Methode ermöglicht Ihnen das Einfügen und Löschen von mehreren Elementen aus einer oder mehreren Tabellen anhand eines einzigen Aufrufs. Im Folgenden werden die Schritte zum Abrufen mehrerer Elemente mithilfe der .NET SDK-Low-Level-API beschrieben.

1. Erstellen Sie eine Instance der `AmazonDynamoDBClient`-Klasse.

1. Beschreiben Sie alle Put- und Delete-Operationen, indem Sie eine Instance der `BatchWriteItemRequest`-Klasse erstellen.

1. Führen Sie die `BatchWriteItem`-Methode aus, indem Sie das `BatchWriteItemRequest`-Objekt bereitstellen, das Sie im vorherigen Schritt erstellt haben.

1. Verarbeiten Sie die Antwort. Überprüfen Sie, ob in der Antwort nicht verarbeitete Anforderungselemente zurückgegeben wurden. Dies kann der Fall sein, wenn Sie das Kontingent für den bereitgestellten Durchsatz erreichen oder ein anderer vorübergehender Fehler auftritt. Außerdem begrenzt DynamoDB die Anforderungsgröße und die Anzahl der Vorgänge, die Sie in einer Anforderung angeben können. Wenn Sie diese Limits überschreiten, wird die Anforderung von DynamoDB abgelehnt. Weitere Informationen finden Sie unter [BatchWriteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html). 

Im folgenden C\$1-Codebeispiel werden die vorherigen Schritte veranschaulicht. Das Beispiel erstellt eine `BatchWriteItemRequest` zum Ausführen der folgenden Schreibvorgänge:
+ Einfügen eines Elements in die `Forum`-Tabelle
+ Einfügen und Löschen eines Elements in der `Thread`-Tabelle.

Der Code führt `BatchWriteItem` aus, um einen Batchvorgang auszuführen.

```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();

string table1Name = "Forum";
string table2Name = "Thread";

var request = new BatchWriteItemRequest
 {
   RequestItems = new Dictionary<string, List<WriteRequest>>
    {
      {
        table1Name, new List<WriteRequest>
        {
          new WriteRequest
          {
             PutRequest = new PutRequest
             {
                Item = new Dictionary<string,AttributeValue>
                {
                  { "Name", new AttributeValue { S = "Amazon S3 forum" } },
                  { "Threads", new AttributeValue { N = "0" }}
                }
             }
          }
        }
      } ,
      {
        table2Name, new List<WriteRequest>
        {
          new WriteRequest
          {
            PutRequest = new PutRequest
            {
               Item = new Dictionary<string,AttributeValue>
               {
                 { "ForumName", new AttributeValue { S = "Amazon S3 forum" } },
                 { "Subject", new AttributeValue { S = "My sample question" } },
                 { "Message", new AttributeValue { S = "Message Text." } },
                 { "KeywordTags", new AttributeValue { SS = new List<string> { "Amazon S3", "Bucket" }  } }
               }
            }
          },
          new WriteRequest
          {
             DeleteRequest = new DeleteRequest
             {
                Key = new Dictionary<string,AttributeValue>()
                {
                   { "ForumName", new AttributeValue { S = "Some forum name" } },
                   { "Subject", new AttributeValue { S = "Some subject" } }
                }
             }
          }
        }
      }
    }
 };
response = client.BatchWriteItem(request);
```

Ein funktionierendes Beispiel finden Sie unter [Beispiel: Batch-Operationen mit der AWS SDK für .NET Low-Level-API](batch-operation-lowlevel-dotnet.md). 

## Batch Get: Abrufen mehrerer Elemente
<a name="BatchGetLowLevelDotNet"></a>

Die `BatchGetItem`-Methode ermöglicht Ihnen das Abrufen mehrerer Elemente aus einer oder mehreren Tabellen. 

**Anmerkung**  
Um ein einzelnes Element abzurufen, können Sie die `GetItem`-Methode verwenden. 

Im Folgenden werden die Schritte zum Abrufen mehrerer Elemente mithilfe der AWS SDK für .NET -Low-Level-API beschrieben.

1. Erstellen Sie eine Instance der `AmazonDynamoDBClient`-Klasse.

1. Stellen Sie die erforderlichen Parameter bereit, in dem Sie eine Instance der `BatchGetItemRequest`-Klasse erstellen.

   Zum Abrufen mehrerer Elemente, sind der Tabellenname und eine Liste der Primärschlüsselwerte erforderlich. 

1. Führen Sie die `BatchGetItem`-Methode aus, indem Sie das `BatchGetItemRequest`-Objekt bereitstellen, das Sie im vorherigen Schritt erstellt haben.

1. Verarbeiten Sie die Antwort. Überprüfen Sie, ob nicht verarbeitete Schlüssel vorhanden sind. Dies kann der Fall sein, wenn Sie das Kontingent für den bereitgestellten Durchsatz erreichen oder ein anderer vorübergehender Fehler auftritt.

Im folgenden C\$1-Codebeispiel werden die vorherigen Schritte veranschaulicht. Das Beispiel ruft Elemente aus zwei Tabellen, `Forum` und `Thread`, ab. Die Anforderung gibt zwei Elemente in der Tabelle `Forum` und drei Elemente in der Tabelle `Thread` an. Die Antwort enthält Elemente aus beiden Tabellen. Der Code zeigt, wie Sie die Antwort verarbeiten können.



```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();

string table1Name = "Forum";
string table2Name = "Thread";

var request = new BatchGetItemRequest
{
  RequestItems = new Dictionary<string, KeysAndAttributes>()
  {
    { table1Name,
      new KeysAndAttributes
      {
        Keys = new List<Dictionary<string, AttributeValue>>()
        {
          new Dictionary<string, AttributeValue>()
          {
            { "Name", new AttributeValue { S = "DynamoDB" } }
          },
          new Dictionary<string, AttributeValue>()
          {
            { "Name", new AttributeValue { S = "Amazon S3" } }
          }
        }
      }
    },
    {
      table2Name,
      new KeysAndAttributes
      {
        Keys = new List<Dictionary<string, AttributeValue>>()
        {
          new Dictionary<string, AttributeValue>()
          {
            { "ForumName", new AttributeValue { S = "DynamoDB" } },
            { "Subject", new AttributeValue { S = "DynamoDB Thread 1" } }
          },
          new Dictionary<string, AttributeValue>()
          {
            { "ForumName", new AttributeValue { S = "DynamoDB" } },
            { "Subject", new AttributeValue { S = "DynamoDB Thread 2" } }
          },
          new Dictionary<string, AttributeValue>()
          {
            { "ForumName", new AttributeValue { S = "Amazon S3" } },
            { "Subject", new AttributeValue { S = "Amazon S3 Thread 1" } }
          }
        }
      }
    }
  }
};

var response = client.BatchGetItem(request);

// Check the response.
var result = response.BatchGetItemResult;
var responses = result.Responses; // The attribute list in the response.

var table1Results = responses[table1Name];
Console.WriteLine("Items in table {0}" + table1Name);
foreach (var item1 in table1Results.Items)
{
  PrintItem(item1);
}

var table2Results = responses[table2Name];
Console.WriteLine("Items in table {1}" + table2Name);
foreach (var item2 in table2Results.Items)
{
  PrintItem(item2);
}
// Any unprocessed keys? could happen if you exceed ProvisionedThroughput or some other error.
Dictionary<string, KeysAndAttributes> unprocessedKeys = result.UnprocessedKeys;
foreach (KeyValuePair<string, KeysAndAttributes> pair in unprocessedKeys)
{
    Console.WriteLine(pair.Key, pair.Value);
}
```



### Angeben eines optionalen Parameters
<a name="BatchGetItemLowLevelDotNETOptions"></a>

Sie können mit dem `BatchGetItemRequest`-Objekt auch optionale Parameter angeben, wie im folgenden C\$1-Beispiel dargestellt. Im Beispiel werden zwei Elemente aus der `Forum` Tabelle abgerufen. Folgende optionale Parameter werden angegeben:
+  `ProjectionExpression` Parameter, um die abzurufenden Attribute anzugeben.

**Example**  

```
AmazonDynamoDBClient client = new AmazonDynamoDBClient();

string table1Name = "Forum";

var request = new BatchGetItemRequest
{
  RequestItems = new Dictionary<string, KeysAndAttributes>()
  {
    { table1Name,
      new KeysAndAttributes
      {
        Keys = new List<Dictionary<string, AttributeValue>>()
        {
          new Dictionary<string, AttributeValue>()
          {
            { "Name", new AttributeValue { S = "DynamoDB" } }
          },
          new Dictionary<string, AttributeValue>()
          {
            { "Name", new AttributeValue { S = "Amazon S3" } }
          }
        }
      },
      // Optional - name of an attribute to retrieve.
      ProjectionExpression = "Title"
    }
  }
};

var response = client.BatchGetItem(request);
```

Weitere Informationen finden Sie unter [BatchGetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html). 