Dela via


Skapa ett objekt i Azure Cosmos DB för table med hjälp av .NET

GÄLLER FÖR: Bord

Objekt i Azure Cosmos DB representerar en specifik entitet som lagras i en tabell. I API:et för tabell består ett objekt av en uppsättning nyckel/värde-par som unikt identifieras av rad- och partitionsnycklarnas sammansättning.

Skapa en unik identifierare för ett objekt

Den unika identifieraren, programmatiskt kallad **** är en distinkt sträng som identifierar ett objekt i en tabell. Varje objekt innehåller också ett partitionsnyckelvärde som används för att fastställa den logiska partitionen för objektet. Båda nycklarna krävs när du skapar ett nytt objekt i en tabell.

Inom en tabells omfång kan två objekt inte dela både samma radnyckel och partitionsnyckel.

Skapa ett objekt

Klassen TableEntity är en allmän implementering av en ordlista som är unikt utformad för att göra det enkelt att skapa ett nytt objekt från en godtycklig ordlista med nyckel/värde-par.

Använd någon av följande strategier för att modellera objekt som du vill skapa i en tabell:

Använda en inbyggd klass

Konstruktorn (string rowKey, string partitionKey) för klassen TableEntity är ett snabbt sätt att skapa ett objekt med bara de egenskaper som krävs. Du kan sedan använda Add metoden för att lägga till extra nyckel/värde-par i objektet.

Du kan till exempel skapa en ny instans av klassen TableEntity genom att först ange rad - och partitionsnycklarna i konstruktorn och sedan lägga till nya nyckel/värde-par i ordlistan:

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

Konstruktorn (IDictionary<string, object>) för klassen TableEntity konverterar en befintlig ordlista till ett objekt som är redo att läggas till i en tabell.

Du kan till exempel skicka en ordlista till en ny instans av klassen 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);

Metoden TableClient.AddEntityAsync<> tar in en parameter av typen TableEntity och skapar sedan ett objekt på serversidan i tabellen.

Implementera gränssnitt

Kommentar

Exemplen i det här avsnittet förutsätter att du redan har definierat en C#-typ som representerar dina data med namnet 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!;
}

Metoden TableClient.AddEntityAsync<> tar in en parameter av alla typer som implementerar ITableEntity gränssnittet. Gränssnittet innehåller redan de nödvändiga RowKey egenskaperna och PartitionKey .

Du kan till exempel skapa ett nytt objekt som implementerar minst alla nödvändiga egenskaper i gränssnittet ITableEntity :

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

Du kan sedan skicka det här objektet till metoden AddEntityAsync<> och skapa ett objekt på serversidan:

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

Nästa steg

Nu när du har skapat olika objekt använder du nästa guide för att läsa ett objekt.