Bagikan melalui


Membuat item di Azure Cosmos DB untuk Tabel menggunakan .NET

BERLAKU UNTUK: Meja

Item di Azure Cosmos DB mewakili entitas tertentu yang disimpan dalam kontainer. Dalam API untuk Tabel, item terdiri dari sekumpulan pasangan kunci-nilai yang diidentifikasi secara unik oleh komposit kunci baris dan partisi.

Membuat pengidentifikasi unik untuk item

Pengidentifikasi unik, secara terprogram dikenal sebagai **** adalah string berbeda yang mengidentifikasi item dalam tabel. Setiap item juga menyertakan nilai kunci partisi yang digunakan untuk menentukan partisi logis untuk item. Kedua kunci diperlukan saat membuat item baru dalam tabel.

Dalam cakupan tabel, dua item tidak dapat berbagi kunci baris dan kunci partisi yang sama.

Membuat item

Kelas TableEntity adalah implementasi generik dari kamus yang dirancang secara unik untuk memudahkan pembuatan item baru dari kamus arbitrer pasangan kunci-nilai.

Gunakan salah satu strategi berikut untuk memodelkan item yang ingin Anda buat dalam tabel:

Menggunakan kelas bawaan

(string rowKey, string partitionKey)Konstruktor kelas TableEntity adalah cara cepat untuk membuat item hanya dengan properti yang diperlukan. Anda kemudian dapat menggunakan metode Add untuk menambahkan pasangan kunci-nilai tambahan ke item.

Misalnya, Anda dapat membuat instans baru kelas TableEntity dengan terlebih dahulu menentukan kunci baris dan partisi di konstruktor lalu menambahkan pasangan kunci-nilai baru ke kamus:

// Create new item using composite key constructor
TableEntity item1 = new(
    rowKey: "68719518388",
    partitionKey: "gear-surf-surfboards"
);

// Add properties to item
item1.Add("Name", "Sunnox Surfboard");
item1.Add("Quantity", 8);
item1.Add("Sale", true);

// Add new item to server-side table
await tableClient.AddEntityAsync<TableEntity>(item1);

(IDictionary<string, object>)Konstruktor kelas TableEntity mengonversi kamus yang ada menjadi item yang siap ditambahkan ke tabel.

Misalnya, Anda dapat meneruskan kamus ke instans baru kelas TableEntity :

// Create dictionary
Dictionary<string, object> properties = new()
{
    { "RowKey", "68719518388" },
    { "PartitionKey", "gear-surf-surfboards" },
    { "Name", "Sunnox Surfboard" },
    { "Quantity", 8 },
    { "Sale", true }
};

// Create new item using dictionary constructor
TableEntity item2 = new(
    values: properties
);

// Add new item to server-side table
await tableClient.AddEntityAsync<TableEntity>(item2);

Metode TableClient.AddEntityAsync<> ini mengambil parameter jenis TableEntity lalu membuat item sisi server dalam tabel.

Menerapkan antarmuka

Catatan

Contoh dalam artikel ini mengasumsikan bahwa Anda telah menentukan jenis C# untuk mewakili data Anda bernama Produk:

// C# record type for items in the table
public record Product : ITableEntity
{
    public string RowKey { get; set; } = default!;

    public string PartitionKey { get; set; } = default!;

    public string Name { get; init; } = default!;

    public int Quantity { get; init; }

    public bool Sale { get; init; }

    public ETag ETag { get; set; } = default!;

    public DateTimeOffset? Timestamp { get; set; } = default!;
}

Metode TableClient.AddEntityAsync<> ini mengambil parameter dari jenis apa pun yang mengimplementasikan ITableEntity antarmuka. Antarmuka sudah termasuk yang diperlukan RowKey dan PartitionKey properti.

Misalnya, Anda dapat membuat objek baru yang mengimplementasikan setidaknya semua properti yang diperlukan di antarmuka ITableEntity:

// Create new item
Product item = new()
{
    RowKey = "68719518388",
    PartitionKey = "gear-surf-surfboards",
    Name = "Sunnox Surfboard",
    Quantity = 8,
    Sale = true
};

Anda kemudian dapat meneruskan objek ini ke metode AddEntityAsync<> yang membuat item sisi server:

// Add new item to server-side table
await tableClient.AddEntityAsync<Product>(item);

Langkah berikutnya

Sekarang setelah Anda membuat berbagai item, gunakan panduan berikutnya untuk membaca item.