Creare un elemento in Azure Cosmos DB for NoSQL con .NET
SI APPLICA A: NoSQL
Gli elementi in Azure Cosmos DB rappresentano un'entità specifica archiviata all'interno di un contenitore. Nell'API for NoSQL, un elemento è costituito da dati in formato JSON con un identificatore univoco.
Creare un identificatore univoco per un elemento
L'identificatore univoco è una stringa distinta che identifica un elemento all'interno di un contenitore. La proprietà id
è l'unica proprietà obbligatoria quando si crea un nuovo documento JSON. Questo documento JSON, ad esempio, è un elemento valido in Azure Cosmos DB:
{
"id": "unique-string-2309509"
}
Nell'ambito di un contenitore due elementi non possono condividere lo stesso identificatore univoco.
Importante
La proprietà id
fa distinzione tra maiuscole e minuscole. Le proprietà denominate ID
, Id
, iD
e _id
verranno considerate come proprietà JSON arbitrarie.
Dopo la creazione il formato dell'URI per un elemento è il seguente:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/docs/<item-resource-identifier>
Per fare riferimento all'elemento con un URI, usare l'identificatore di risorsa generato dal sistema invece del campo id
. Per altre informazioni sulle proprietà degli elementi generati dal sistema in Azure Cosmos DB for NoSQL, vedere Proprietà di un elemento
Creare un elemento
Nota
Gli esempi forniti in questo articolo presuppongono che sia già stato definito un tipo C# per rappresentare i dati denominati Product:
// C# record type for items in the container
public record Product(
string id,
string category,
string name,
int quantity,
bool sale
);
Gli esempi presuppongono anche che sia già stato creato un nuovo oggetto di tipo Product denominato newItem:
// Create new item and add to container
Product item = new(
id: "68719518388",
category: "gear-surf-surfboards",
name: "Sunnox Surfboard",
quantity: 8,
sale: true
);
Per creare un elemento, usare uno dei metodi seguenti:
Creare un elemento in modo asincrono
Nell'esempio seguente viene creato un nuovo elemento in modo asincrono:
Product createdItem = await container.CreateItemAsync<Product>(
item: item,
partitionKey: new PartitionKey("gear-surf-surfboards")
);
Il metodo Container.CreateItemAsync<>
genererà un'eccezione se esiste un conflitto con l'identificatore univoco di un elemento esistente. Per altre informazioni sulle potenziali eccezioni, vedere Eccezioni CreateItemAsync<>
.
Sostituire un elemento in modo asincrono
L'esempio seguente sostituisce un elemento esistente in modo asincrono:
Product replacedItem = await container.ReplaceItemAsync<Product>(
item: item,
id: "68719518388",
partitionKey: new PartitionKey("gear-surf-surfboards")
);
Il metodo Container.ReplaceItemAsync<>
richiede che la stringa fornita per il parametro id
corrisponda all'identificatore univoco del parametro item
.
Creare o sostituire un elemento in modo asincrono
L'esempio seguente creerà un nuovo elemento o sostituirà un elemento esistente se esiste già un elemento con lo stesso identificatore univoco:
Product upsertedItem = await container.UpsertItemAsync<Product>(
item: item,
partitionKey: new PartitionKey("gear-surf-surfboards")
);
Il metodo Container.UpsertItemAsync<>
userà l'identificatore univoco del parametro item
per determinare se è presente un conflitto con un elemento esistente e sostituire l'elemento in modo appropriato.
Passaggi successivi
Dopo aver creato vari elementi, utilizzare la guida successiva per seguire leggere un elemento.