إنشاء المستندات

مكتمل

لإنشاء عنصر جديد، ينبغي علينا أولا إنشاء متغير جديد في رمز C# من نوع المنتج.

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.Container أسمه حاوية.

يمكننا استدعاء الأسلوب إنشاء عنصر متزامن<> بشكل غير متزامن بالتمرير في نوع المنتج العام ومتغير العنصر الجديد في الدالة الإنشائية.

await container.CreateItemAsync<Product>(saddle);

باستدعاء هذا الأسلوب سيتم إنشاء العنصر الجديد ولكن لن يكون لديك أي بيانات التعريف حول نتيجة العملية. بدلا من ذلك، يمكنك تخزين نتيجة العملية في متغير من نوع استجابة العنصر<>.

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

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

Product item = response.Resource;

إذا كنت تستخدم كتلة try-catch، يمكنك معالجة نوع استثناء Cosmos الذي يتضمن خاصية التعليمة البرمجية للحالة لقيم التعليمات البرمجية لحالة HTTP. هناك بعض التعليمات البرمجية لحالة HTTP الشائعة التي يجب مراعاتها في التعليمات البرمجية للتطبيق:

الرمز ‏‫المسمى الوظيفي السبب
400 طلب غير صالح كان هناك شيء خاطئ في هذا البند في نص الطلب
403 محظور الحاوية كانت ممتلئة غالبا
409 Conflict العنصر في الحاوية من المحتمل أن يكون لديه معرف مماثل
413 كيان الطلب كان كبيرا للغاية العنصر يتخطي الحد الأقصى لحجم الكيان
429 TooManyRequests الطلب الحالي يتخطي الحد الأقصى لـوحدات الطلب المخصصة للحاوية

في هذا المثال

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
}