Tworzenie elementu w usłudze Azure Cosmos DB dla tabeli przy użyciu platformy .NET
DOTYCZY: Stół
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, który identyfikuje element w tabeli. Każdy element zawiera również wartość klucza partycji, która jest używana 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óry jest unikatowo zaprojektowany, 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:
Korzystanie z 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żna na przykład utworzyć nowe wystąpienie klasy TableEntity , najpierw określając w konstruktorze wiersz i klucze partycji , 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);
Konstruktor (IDictionary<string, object>)
klasy TableEntity konwertuje istniejący słownik na element gotowy do dodania do tabeli.
Na przykład można 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
Po utworzeniu różnych elementów użyj następnego przewodnika, aby przeczytać element.