Belgeleri oluşturma

Tamamlandı

Yeni bir öğe oluşturmak için önce C# kodunda Ürün türünde yeni bir değişken oluşturmamız gerekir.

Product saddle = new()
{
    id = "027D0B9A-F9D9-4C96-8213-C8546C4AAE71",
    categoryId = "26C74104-40BC-4541-8EF5-9892F7F03D72",
    name = "LL Road Seat/Saddle",
    price = 27.12d,
    tags = new string[] 
    {
        "brown",
        "weathered"
    }
};

Microsoft.Azure.Cosmos türünde bir değişken olduğunu varsayalım.kapsayıcı adlı kapsayıcı.

Genel Ürün türünü ve yeni öğe değişkenini oluşturucuya geçirerek CreateItemAsync<> yöntemini zaman uyumsuz olarak çağırabiliriz.

await container.CreateItemAsync<Product>(saddle);

Yönteminin bu çağrılması yeni öğeyi oluşturur, ancak işlemin sonucuyla ilgili herhangi bir meta veriniz olmaz. Alternatif olarak, işlemin sonucunu ItemResponse<> türünde bir değişkende depolayabilirsiniz.

ItemResponse<Product> response = await container.CreateItemAsync<Product>(saddle);

HttpStatusCode status = response.StatusCode;
double requestUnits = response.RequestCharge;

Product item = response.Resource;

Try-catch bloğu kullanıyorsanız, HTTP durum kodu değerleri için StatusCodeözelliğini içeren CosmosException türünü işleyebilirsiniz. Uygulama kodunuzda dikkate almanız gereken birkaç yaygın HTTP durum kodu vardır:

Kod Başlık Nedeni
400 Hatalı İstek İsteğin gövdesindeki öğede bir sorun oluştu
403 Yasak Kapsayıcı büyük olasılıkla doluydu
409 Çakışma Kapsayıcıdaki öğenin büyük olasılıkla eşleşen bir kimliği vardır
413 RequestEntityTooLarge Öğe maksimum varlık boyutunu aşıyor
429 TooManyRequests Geçerli istek, kapsayıcı için sağlanan maksimum RU/sn sayısını aşıyor

Bu örnekte

try
{
    await container.CreateItemAsync<Product>(saddle);
}
catch(CosmosException ex) when (ex.StatusCode == HttpStatusCode.Conflict)
{
    // Add logic to handle conflicting ids
}
catch(CosmosException ex) 
{
    // Add general exception handling logic
}