Udostępnij za pośrednictwem


Tworzenie elementu w usłudze Azure Cosmos DB dla tabeli przy użyciu platformy .NET

DOTYCZY: Tabeli

Elementy w usłudze Azure Cosmos DB reprezentują określoną jednostkę przechowywaną w tabeli. W interfejsie API dla tabeli element składa się z zestawu par klucz-wartość jednoznacznie identyfikowanych przez złożone klucze wiersza i partycji.

Tworzenie unikatowego identyfikatora elementu

Unikatowy identyfikator, programowo znany jako **** jest odrębnym ciągiem identyfikującym element w tabeli. Każdy element zawiera również wartość klucza partycji , która służy do określania partycji logicznej dla elementu. Oba klucze są wymagane podczas tworzenia nowego elementu w tabeli.

W zakresie tabeli dwa elementy nie mogą współdzielić zarówno tego samego klucza wiersza , jak i klucza partycji.

Tworzenie elementu

Klasa TableEntity jest ogólną implementacją słownika, która jest unikatowo zaprojektowana, aby ułatwić tworzenie nowego elementu z dowolnego słownika par klucz-wartość.

Użyj jednej z następujących strategii, aby modelować elementy, które chcesz utworzyć w tabeli:

Używanie wbudowanej klasy

Konstruktor(string rowKey, string partitionKey) klasy TableEntity to szybki sposób tworzenia elementu z tylko wymaganymi właściwościami. Następnie możesz użyć Add metody , aby dodać do elementu dodatkowe pary klucz-wartość.

Możesz na przykład utworzyć nowe wystąpienie klasy TableEntity , określając najpierw klucze wierszy i partycji w konstruktorze, a następnie dodając nowe pary klucz-wartość do słownika:

// 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 klasy TableEntity konwertuje istniejący słownik na element gotowy do dodania do tabeli.

Można na przykład przekazać słownik do nowego wystąpienia klasy 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);

Metoda TableClient.AddEntityAsync<> przyjmuje parametr typu TableEntity , a następnie tworzy element po stronie serwera w tabeli.

Implementowanie interfejsu

Uwaga

W przykładach w tej sekcji założono, że zdefiniowano już typ języka C#, aby reprezentować dane o nazwie Product:

// 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!;
}

Metoda TableClient.AddEntityAsync<> przyjmuje parametr dowolnego typu, który implementuje ITableEntity interfejs. Interfejs zawiera już wymagane RowKey właściwości i PartitionKey .

Można na przykład utworzyć nowy obiekt, który implementuje co najmniej wszystkie wymagane właściwości w interfejsie ITableEntity :

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

Następnie można przekazać ten obiekt do metody AddEntityAsync<> tworzącej element po stronie serwera:

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

Następne kroki

Teraz, po utworzeniu różnych elementów, użyj następnego przewodnika, aby przeczytać element.