إنشاء المستندات
لإنشاء عنصر جديد، ينبغي علينا أولا إنشاء متغير جديد في رمز 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
}