

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.

# Speichern und Abrufen von Daten mit DynamoDB
<a name="getting-started-store-retrieve-data"></a>

 [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) ist ein schneller, hochgradig skalierbarer, hochverfügbarer, wirtschaftlicher, nicht relationaler Datenbankservice. DynamoDBMit werden Einschränkungen der Datenspeicherungsskalierbarkeit eliminiert, die Latenz niedrig gehalten und die Leistung ist vorhersehbar.

Im folgenden Tutorial wird erläutert, wie Sie das DynamoDB Object Persistence-Modell in Ihre App integrieren, in der Objekte in gespeichert DynamoDBwerden.

## Projekteinrichtung
<a name="project-setup"></a>

### Prerequisites
<a name="prerequisites"></a>

Befolgen Sie alle Anweisungen unter [Einrichten von AWS Mobile SDK for .NET and](setup.md) Xamarin, bevor Sie mit diesem Tutorial beginnen.

### Erstellen einer DynamoDB Tabelle
<a name="create-a-dynamodb-table"></a>

Bevor Sie Daten in einer DynamoDB Datenbank lesen und schreiben können, müssen Sie eine Tabelle erstellen. Beim Erstellen der Tabelle müssen Sie den Primärschlüssel angeben. Der Primärschlüssel besteht aus einem Hash-Attribut und einem optionalen Bereichsattribut. Weitere Informationen zur Verwendung primärer Attribute und Bereichsattribute finden Sie unter [Arbeiten mit Tabellen](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html).

1. Navigieren Sie zur [DynamoDB -Konsole](https://console.aws.amazon.com/dynamodb/home) und klicken Sie auf Create Table (Tabelle ****erstellen). Der Assistent "Create Table" wird angezeigt.

1. Geben Sie den Tabellennamen, den Typ des Primärschlüssels (Hash) und den Namen des Hash-Attributs („Id“) wie unten dargestellt ein. Klicken Sie dann auf **Continue (Weiter)**:  
![\[DynamoDB table creation interface showing table name, primary key type, and hash attribute configuration.\]](http://docs.aws.amazon.com/de_de/mobile/sdkforxamarin/developerguide/images/create-table.png)

1. Lassen Sie die Felder im nächsten Bildschirm leer und klicken Sie auf **Continue (Weiter)**.

1. Übernehmen Sie die Standardwerte für **Read Capacity Units (Lesekapazitätseinheiten )** und **Write Capacity Units (Schreibkapazitätseinheiten)** und klicken Sie auf **Continue (Weiter)**.

1. Geben Sie im nächsten Bildschirm Ihre E-Mail-Adresse in das Textfeld **Send notification to: ( Benachrichtigung senden an:)** ein und klicken Sie auf **Continue (Weiter)**. Der Zusammenfassungsbildschirm wird angezeigt.

1. Klicken Sie auf **Create**. Es kann einige Minuten dauern, bis die Tabelle erstellt wurde.

### Festlegen von -Berechtigungen für DynamoDB
<a name="set-permissions-for-dynamodb"></a>

Damit Ihr Identitäten-Pool auf Amazon zugreifen DynamoDBkann, müssen Sie die Rollen des Identitäten-Pools ändern.

1. Navigieren Sie zur [Identity and Access Management Console](https://console.aws.amazon.com/iam/home) und klicken Sie im linken Bereich auf **** Roles. Suchen Sie Ihren Identitäten-Pool-Namen. Aufgelistet werden zwei Rollen, eine für nicht authentifizierte Benutzer, die andere für authentifizierte Benutzer.

1. Klicken Sie auf die Rolle für nicht authentifizierte Benutzer (an den Identitäten-Pool-Namen ist „unauth“ angehängt) und dann auf **Create Role Policy (Rollenrichtlinie erstellen)**.

1. Wählen Sie **Policy Generator (Richtliniengenerator)** und klicken Sie auf **Select (Auswählen)**.

1. Geben Sie auf der Seite **Edit Permissions** (Berechtigungen bearbeiten) die in der folgenden Abbildung gezeigten Einstellungen ein. Der Amazon-Ressourcenname (ARN) einer DynamoDB Tabelle sieht aus wie `arn:aws:dynamodb:us-west-2:123456789012:table/Books` und besteht aus der Region, in der sich die Tabelle befindet, der AWS-Kontonummer des Besitzers und dem Namen der Tabelle im Format `table/Books`. Weitere Informationen zum Angeben von ARNsfinden Sie unter [Amazon-Ressourcennamen für DynamoDB ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/UsingIAMWithDDB.html#ARN_Format).  
![\[Edit Permissions page for Amazon DynamoDB with Allow effect and ARN input field.\]](http://docs.aws.amazon.com/de_de/mobile/sdkforxamarin/developerguide/images/edit-permissions-dynamodb.png)

1. Klicken Sie auf **Add Statement (Anweisung hinzufügen)** und anschließend auf **Next Step (Nächster Schritt)**. Der Assistent zeigt die generierte Konfiguration.

1. Klicken Sie auf **Apply Policy**.

### Hinzufügen NuGet des Pakets für DynamoDB zu Ihrem Projekt
<a name="add-nuget-package-for-dynamodb-to-your-project"></a>

Befolgen Sie Schritt 4 der Anweisungen unter [Einrichten von AWS Mobile SDK for .NET and](setup.md) Xamarin, um das -DynamoDBNuGetPaket Ihrem Projekt hinzuzufügen.

## Initialisieren AmazonDynamoDBClient
<a name="initialize-amazondynamodbclient"></a>

Übergeben Sie Ihren initialisierten Amazon Cognito und Ihre Region an den `AmazonDynamoDB` Konstruktor und dann den Client an den DynamoDBContext:

```
var client = new AmazonDynamoDBClient(credentials,region);
DynamoDBContext context = new DynamoDBContext(client);
```

## Erstellen einer Klasse
<a name="create-a-class"></a>

Um eine Zeile in die Tabelle zu schreiben, definieren Sie eine Klasse, die die Zeilendaten aufnimmt. Die Klasse sollte auch Eigenschaften enthalten, die die Attributdaten für die Zeile enthalten und der in der -Konsole erstellten DynamoDB Tabelle zugeordnet werden. Die folgende Klassendeklaration zeigt eine solche Klasse:

```
[DynamoDBTable("Books")]
public class Book
{
    [DynamoDBHashKey]    // Hash key.
    public int Id { get; set; }
    public string Title { get; set; }
    public string ISBN { get; set; }
    public int Price { get; set; }
    public string PageCount { get; set; }
    public string Author{ get; set; }
}
```

## Speichern eines Elements
<a name="save-an-item"></a>

Erstellen Sie zum Speichern eines Elements zunächst ein Objekt:

```
Book songOfIceAndFire = new Book()
{
    Id=1,
    Title="Game Of Thrones",
    ISBN="978-0553593716",
    Price=4,
    PageCount="819",
    Author="GRRM"
};
```

Speichern Sie es dann:

```
context.Save(songOfIceAndFire);
```

Ändern Sie zum Aktualisieren einer Zeile die Instance der `DDTableRow`-Klasse und rufen Sie wie oben gezeigt `AWSDynamoObjectMapper.save()` auf.

## Abrufen eines Elements
<a name="retrieve-an-item"></a>

Abrufen eines Elements mit einem Primärschlüssel:

```
Book retrievedBook = context.Load<Book>(1);
```

## Aktualisieren eines Elements
<a name="update-an-item"></a>

Aktualisieren Sie ein Element wie folgt:

```
Book retrievedBook = context.Load<Book>(1);
retrievedBook.ISBN = "978-0553593716";
context.Save(retrievedBook);
```

## Löschen eines Elements
<a name="delete-an-item"></a>

So löschen Sie einen Artikel:

```
Book retrievedBook = context.Load<Book>(1);
context.Delete(retrievedBook);
```

Weitere Informationen zum Zugriff auf DynamoDB über eine Xamarin-Anwendung finden Sie unter [Amazon DynamoDB ](dynamodb.md).