

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bekerja dengan item: .NET
<a name="LowLevelDotNetItemCRUD"></a>

Anda dapat menggunakan API AWS SDK untuk .NET tingkat rendah untuk melakukan operasi membuat, membaca, memperbarui, dan menghapus (CRUD) pada item dalam tabel. Berikut ini adalah langkah-langkah umum yang Anda ikuti untuk melakukan operasi CRUD data menggunakan API tingkat rendah .NET:

1. Buat instans dari kelas `AmazonDynamoDBClient` (klien).

1. Berikan parameter khusus operasi yang diperlukan dalam objek permintaan yang sesuai.

   Misalnya, gunakan permintaan `PutItemRequest` saat mengunggah item dan gunakan permintaan `GetItemRequest` saat mengambil item yang sudah ada. 

   Anda dapat menggunakan objek permintaan untuk menyediakan parameter wajib dan opsional. 

1. Jalankan metode yang sesuai yang disediakan oleh klien dengan meneruskan objek permintaan yang Anda buat pada langkah sebelumnya. 

   Klien `AmazonDynamoDBClient` menyediakan metode `PutItem`, `GetItem`, `UpdateItem`, dan `DeleteItem` untuk operasi CRUD.

**Topics**
+ [Menempatkan item](#PutItemLowLevelAPIDotNet)
+ [Mendapatkan item](#GetItemLowLevelDotNET)
+ [Memperbarui Item](#UpdateItemLowLevelDotNet)
+ [Penghitung atom](#AtomicCounterLowLevelDotNet)
+ [Menghapus item](#DeleteMidLevelDotNet)
+ [Penulisan batch: Menempatkan dan menghapus beberapa item](#BatchWriteLowLevelDotNet)
+ [Batch get: Mendapatkan beberapa item](#BatchGetLowLevelDotNet)
+ [Contoh: Operasi CRUD menggunakan API tingkat AWS SDK untuk .NET rendah](LowLevelDotNetItemsExample.md)
+ [Contoh: Operasi Batch menggunakan API AWS SDK untuk .NET tingkat rendah](batch-operation-lowlevel-dotnet.md)
+ [Contoh: Menangani atribut tipe biner menggunakan API AWS SDK untuk .NET tingkat rendah](LowLevelDotNetBinaryTypeExample.md)

## Menempatkan item
<a name="PutItemLowLevelAPIDotNet"></a>

Metode `PutItem` mengunggah item ke tabel. Jika item ada, item tersebut akan menggantikan keseluruhan item.

**catatan**  
Alih-alih mengganti seluruh item, jika Anda hanya ingin memperbarui atribut tertentu, Anda dapat menggunakan metode `UpdateItem`. Untuk informasi selengkapnya, lihat [Memperbarui Item](#UpdateItemLowLevelDotNet).

Berikut langkah-langkah untuk mengunggah item menggunakan .NET SDK API tingkat rendah:

1. Buat instans dari kelas `AmazonDynamoDBClient`.

1. Berikan parameter yang diperlukan dengan membuat instans kelas `PutItemRequest`.

   Untuk menaruh item, Anda harus memberikan nama tabel dan itemnya. 

1. Jalankan metode `PutItem` dengan menyediakan objek `PutItemRequest` yang Anda buat pada langkah sebelumnya.

Contoh \$1C berikut menunjukkan langkah-langkah sebelumnya. Contoh tersebut mengunggah item ke tabel `ProductCatalog`.

**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);
```

Pada contoh sebelumnya, Anda mengunggah item buku yang memiliki atribut `Id`, `Title`, `ISBN`, dan `Authors`. Perhatikan bahwa `Id` adalah atribut jenis numerik, dan semua atribut lainnya adalah jenis string. Penulis adalah set `String`.

### Menentukan parameter opsional
<a name="PutItemLowLevelAPIDotNetOptions"></a>

Anda juga dapat memberikan parameter opsional menggunakan objek `PutItemRequest` seperti yang ditunjukkan dalam contoh C\$1 berikut. Contoh tersebut menentukan parameter opsional berikut:
+ `ExpressionAttributeNames`, `ExpressionAttributeValues`, dan `ConditionExpression` menentukan bahwa barang tersebut hanya dapat diganti jika barang yang ada memiliki atribut ISBN dengan nilai tertentu.
+ Parameter `ReturnValues` untuk meminta item lama dalam respons.

**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);
```

Untuk informasi selengkapnya, lihat [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html).

## Mendapatkan item
<a name="GetItemLowLevelDotNET"></a>

Metode `GetItem` mengambil item.

**catatan**  
Untuk mengambil beberapa item, Anda dapat menggunakan metode `BatchGetItem`. Untuk informasi selengkapnya, lihat [Batch get: Mendapatkan beberapa item](#BatchGetLowLevelDotNet).

Berikut ini adalah langkah-langkah untuk mengambil item yang ada menggunakan API AWS SDK untuk .NET tingkat rendah.

1. Buat instans dari kelas `AmazonDynamoDBClient`.

1. Berikan parameter yang diperlukan dengan membuat instans kelas `GetItemRequest`.

   Untuk mendapatkan item, Anda harus memberikan nama tabel dan kunci primer item tersebut. 

1. Jalankan metode `GetItem` dengan menyediakan objek `GetItemRequest` yang Anda buat pada langkah sebelumnya.

Contoh \$1C berikut menunjukkan langkah-langkah sebelumnya. Contoh tersebut mengambil item dari tabel `ProductCatalog`.

```
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.
```

### Menentukan parameter opsional
<a name="GetItemLowLevelDotNETOptions"></a>

Anda juga dapat memberikan parameter opsional menggunakan objek `GetItemRequest`, seperti yang ditunjukkan dalam contoh C\$1 berikut. Contoh tersebut menentukan parameter opsional berikut:
+ Parameter `ProjectionExpression` untuk menentukan atribut yang akan diambil.
+ Parameter `ConsistentRead` untuk melakukan bacaan sangat konsisten. Untuk mempelajari selengkapnya tentang konsistensi baca, lihat [DynamoDB membaca konsistensi](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;
```

Untuk informasi selengkapnya, lihat [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html).

## Memperbarui Item
<a name="UpdateItemLowLevelDotNet"></a>

Metode `UpdateItem` memperbarui item yang ada jika ada. Anda dapat menggunakan operasi `UpdateItem` untuk memperbarui nilai atribut yang ada, menambahkan atribut baru, atau menghapus atribut dari koleksi yang ada. Jika item yang memiliki kunci primer yang ditentukan tidak ditemukan, item baru akan ditambahkan.

Operasi `UpdateItem` menggunakan panduan berikut:
+ Jika item tidak ada, `UpdateItem` menambahkan item baru menggunakan kunci primer yang ditentukan dalam input.
+ Jika item ada, `UpdateItem` menerapkan pembaruan sebagai berikut:
  + Menggantikan nilai atribut yang ada dengan nilai dalam pembaruan.
  + Jika atribut yang Anda berikan pada input tidak ada, atribut baru akan ditambahkan ke item tersebut.
  + Jika atribut input adalah null, atribut tersebut akan dihapus, jika ada. 
  + Jika Anda menggunakan `ADD` untuk`Action`, Anda dapat menambahkan nilai ke set yang sudah ada (set string atau angka), atau menambahkan secara matematis (menggunakan angka positif) atau mengurangi (menggunakan angka negatif) dari nilai atribut numerik yang ada.

**catatan**  
Operasi `PutItem` juga dapat melakukan pembaruan. Untuk informasi selengkapnya, lihat [Menempatkan item](#PutItemLowLevelAPIDotNet). Misalnya, jika Anda memanggil `PutItem` untuk mengunggah item dan kunci primer ada, operasi `PutItem` menggantikan seluruh item. Jika terdapat atribut dalam item yang ada yang tidak ditentukan dalam input, operasi `PutItem` akan menghapus atribut tersebut. Namun, `UpdateItem` hanya memperbarui atribut input yang ditentukan. Atribut lain item tersebut yang ada tidak akan berubah. 

Berikut langkah-langkah untuk memperbarui item menggunakan .NET SDK API tingkat rendah:

1. Buat instans dari kelas `AmazonDynamoDBClient`.

1. Berikan parameter yang diperlukan dengan membuat instans kelas `UpdateItemRequest`.

   Ini adalah objek permintaan tempat Anda menjelaskan semua pembaruan, seperti menambahkan atribut, memperbarui atribut yang ada, atau menghapus atribut. Untuk menghapus atribut yang ada, tentukan nama atribut dengan nilai null. 

1. Jalankan metode `UpdateItem` dengan menyediakan objek `UpdateItemRequest` yang Anda buat pada langkah sebelumnya. 

Contoh kode \$1C berikut mendemonstrasikan langkah sebelumnya. Contoh tersebut memperbarui item buku dalam tabel `ProductCatalog`. Contoh tersebut menambahkan penulis baru ke koleksi `Authors`, dan menghapus atribut `ISBN` yang ada. Contoh tersebut juga mengurangi harga sebanyak satu.



```
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);
```

### Menentukan parameter opsional
<a name="UpdateItemLowLevelDotNETOptions"></a>

Anda juga dapat memberikan parameter opsional menggunakan objek `UpdateItemRequest`, seperti yang ditunjukkan dalam contoh C\$1 berikut. Contoh tersebut menentukan parameter opsional berikut:
+ `ExpressionAttributeValues` dan `ConditionExpression` untuk menentukan bahwa harga dapat diperbarui hanya jika harga yang ada adalah 20,00.
+ Parameter `ReturnValues` untuk meminta item yang diperbarui dalam respons. 

**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);
```

Untuk informasi selengkapnya, lihat [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html). 

## Penghitung atom
<a name="AtomicCounterLowLevelDotNet"></a>

Anda dapat menggunakan `updateItem` untuk mengimplementasi penghitung atom, di mana Anda menambahkan atau mengurangi nilai atribut yang ada tanpa mengganggu permintaan tulis lainnya. Untuk memperbarui penghitung atom, gunakan `updateItem` dengan atribut jenis `Number` dalam parameter `UpdateExpression`, dan `ADD` sebagai `Action`.

Contoh berikut menunjukkan hal ini, menambahkan satu atribut `Quantity`.

```
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);
```

## Menghapus item
<a name="DeleteMidLevelDotNet"></a>

Metode `DeleteItem` menghapus item dari tabel. 

Berikut ini adalah langkah-langkah untuk menghapus item menggunakan .NET SDK API tingkat rendah. 

1. Buat instans dari kelas `AmazonDynamoDBClient`.

1. Berikan parameter yang diperlukan dengan membuat instans kelas `DeleteItemRequest`.

    Untuk menghapus item, diperlukan nama tabel dan kunci primer item. 

1. Jalankan metode `DeleteItem` dengan menyediakan objek `DeleteItemRequest` yang Anda buat pada langkah sebelumnya. 

**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);
```

### Menentukan parameter opsional
<a name="DeleteItemLowLevelDotNETOptions"></a>

Anda juga dapat memberikan parameter opsional menggunakan objek `DeleteItemRequest` seperti yang ditunjukkan dalam contoh kode C\$1 berikut. Contoh tersebut menentukan parameter opsional berikut:
+ `ExpressionAttributeValues`dan `ConditionExpression` untuk menentukan bahwa item buku dapat dihapus hanya jika tidak lagi dalam publikasi (nilai InPublication atribut salah). 
+ Parameter `ReturnValues` untuk meminta item yang dihapus dalam respons.

**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);
```

Untuk informasi selengkapnya, lihat [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html).

## Penulisan batch: Menempatkan dan menghapus beberapa item
<a name="BatchWriteLowLevelDotNet"></a>

*Penulisan batch* merujuk pada penempatan dan penghapusan beberapa item dalam satu batch. Metode `BatchWriteItem` memungkinkan Anda untuk memasukkan dan menghapus beberapa item dari satu atau lebih tabel dalam satu panggilan. Berikut ini adalah langkah-langkah untuk mengambil beberapa item menggunakan .NET SDK API tingkat rendah.

1. Buat instans dari kelas `AmazonDynamoDBClient`.

1. Jelaskan semua operasi tempatkan dan hapus dengan membuat instans dari kelas `BatchWriteItemRequest`.

1. Jalankan metode `BatchWriteItem` dengan menyediakan objek `BatchWriteItemRequest` yang Anda buat pada langkah sebelumnya.

1. Proses responsnya. Anda harus memeriksa apakah ada item permintaan yang belum diproses yang dikembalikan sebagai respons. Hal ini dapat terjadi jika Anda mencapai kuota throughput yang disediakan atau kesalahan sementara lainnya. Selain itu, DynamoDB membatasi ukuran permintaan dan jumlah operasi yang dapat Anda tentukan dalam permintaan. Jika Anda melebihi batas ini, DynamoDB menolak permintaan tersebut. Untuk informasi selengkapnya, lihat [BatchWriteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html). 

Contoh kode \$1C berikut mendemonstrasikan langkah sebelumnya. Contoh ini membuat `BatchWriteItemRequest` untuk melakukan operasi tulis berikut:
+ Tempatkan satu item dalam tabel `Forum`.
+ Tempatkan dan hapus satu item dari tabel `Thread`.

Kode menjalankan `BatchWriteItem` untuk melakukan operasi batch.

```
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);
```

Untuk contoh pekerjaan, lihat [Contoh: Operasi Batch menggunakan API AWS SDK untuk .NET tingkat rendah](batch-operation-lowlevel-dotnet.md). 

## Batch get: Mendapatkan beberapa item
<a name="BatchGetLowLevelDotNet"></a>

Metode `BatchGetItem` memungkinkan Anda mengambil beberapa item dari satu atau lebih tabel. 

**catatan**  
Untuk mengambil satu item, Anda dapat menggunakan metode `GetItem`. 

Berikut ini adalah langkah-langkah untuk mengambil beberapa item menggunakan API AWS SDK untuk .NET tingkat rendah.

1. Buat instans dari kelas `AmazonDynamoDBClient`.

1. Berikan parameter yang diperlukan dengan membuat instans kelas `BatchGetItemRequest`.

   Untuk mengambil beberapa item, nama tabel dan daftar nilai kunci primer diperlukan. 

1. Jalankan metode `BatchGetItem` dengan menyediakan objek `BatchGetItemRequest` yang Anda buat pada langkah sebelumnya.

1. Proses responsnya. Anda harus memeriksa apakah ada kunci yang belum diproses, yang dapat terjadi jika Anda mencapai kuota throughput yang disediakan atau kesalahan sementara lainnya.

Contoh kode \$1C berikut mendemonstrasikan langkah sebelumnya. Contoh tersebut mengambil item dari dua tabel, `Forum` dan `Thread`. Permintaan menentukan dua item dalam `Forum` dan tiga item dalam tabel `Thread`. Respons tersebut mencakup item dari kedua tabel. Kode tersebut menunjukkan bagaimana Anda dapat memproses respons.



```
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);
}
```



### Menentukan parameter opsional
<a name="BatchGetItemLowLevelDotNETOptions"></a>

Anda juga dapat memberikan parameter opsional menggunakan objek `BatchGetItemRequest` seperti yang ditunjukkan dalam contoh kode C\$1 berikut. Contoh tersebut mengambil dua item dari tabel `Forum`. Contoh tersebut menentukan parameter opsional berikut:
+  Parameter `ProjectionExpression` untuk menentukan atribut yang akan diambil.

**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);
```

Untuk informasi selengkapnya, lihat [BatchGetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html). 