التشغيل السريع: استخدام Azure Cosmos DB للجدول مع Azure SDK ل .NET
في هذا التشغيل السريع، يمكنك نشر Azure Cosmos DB أساسي لتطبيق Table باستخدام Azure SDK ل .NET. Azure Cosmos DB للجدول هو مخزن بيانات بلا مخطط يسمح للتطبيقات بتخزين بيانات الجدول المنظمة في السحابة. ستتعلم كيفية إنشاء جداول وصفوف وتنفيذ المهام الأساسية داخل مورد Azure Cosmos DB باستخدام Azure SDK ل .NET.
الوثائق | المرجعية لواجهة برمجة التطبيقات حزمة التعليمات البرمجية | المصدر لمكتبة (NuGet) | Azure Developer CLI
المتطلبات الأساسية
- Azure Developer CLI
- Docker Desktop
- .NET 9.0
إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
تهيئة المشروع
استخدم Azure Developer CLI (azd
) لإنشاء حساب Azure Cosmos DB للجدول ونشر نموذج تطبيق حاوية. يستخدم نموذج التطبيق مكتبة العميل لإدارة البيانات النموذجية وإنشاءها وقراءتها والاستعلام عن البيانات.
افتح محطة طرفية في دليل فارغ.
إذا لم تكن قد تمت مصادقتك بالفعل، فقم بالمصادقة على Azure Developer CLI باستخدام
azd auth login
. اتبع الخطوات المحددة بواسطة الأداة للمصادقة على CLI باستخدام بيانات اعتماد Azure المفضلة لديك.azd auth login
استخدم
azd init
لتهيئة المشروع.azd init --template cosmos-db-table-dotnet-quickstart
أثناء التهيئة، قم بتكوين اسم بيئة فريد.
انشر حساب Azure Cosmos DB باستخدام
azd up
. تنشر قوالب Bicep أيضا نموذج تطبيق ويب.azd up
أثناء عملية التوفير، حدد اشتراكك والموقع المطلوب ومجموعة الموارد المستهدفة. انتظر حتى اكتمال عملية التوفير. قد تستغرق العملية حوالي خمس دقائق.
بمجرد توفير موارد Azure الخاصة بك، يتم تضمين عنوان URL لتطبيق الويب قيد التشغيل في الإخراج.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
استخدم عنوان URL في وحدة التحكم للانتقال إلى تطبيق الويب الخاص بك في المستعرض. لاحظ إخراج التطبيق قيد التشغيل.
تثبيت مكتبة العميل
تتوفر مكتبة العميل من خلال NuGet، كحزمة Azure.Data.Tables
.
افتح terminal وانتقل إلى
/src/web
المجلد.cd ./src/web
إذا لم يكن مثبتا بالفعل، فقم بتثبيت الحزمة
Azure.Data.Tables
باستخدامdotnet add package
.dotnet add package Azure.Data.Tables
افتح الملف src/web/Microsoft.Samples.Cosmos.Table.Quickstart.Web.csproj وراجعه للتحقق من
Azure.Data.Tables
وجود الإدخال.
نموذج الكائن
Name | الوصف |
---|---|
TableServiceClient | هذه الفئة هي فئة العميل الأساسية وتستخدم لإدارة بيانات التعريف أو قواعد البيانات على مستوى الحساب. |
TableClient | تمثل هذه الفئة العميل لجدول داخل الحساب. |
أمثلة على التعليمات البرمجية
يستخدم نموذج التعليمات البرمجية في القالب جدولا يسمى cosmicworks-products
. cosmicworks-products
يحتوي الجدول على تفاصيل مثل الاسم والفئة والكمية والسعر والمعرف الفريد وعلامة البيع لكل منتج. تستخدم الحاوية معرفا فريدا كمفتاح الصف والفئة كمفتاح قسم.
مصادقة العميل
ينشئ هذا النموذج مثيلا جديدا للفئة TableServiceClient
.
DefaultAzureCredential credential = new();
TableServiceClient serviceClient = new(
endpoint: new Uri("<azure-cosmos-db-table-account-endpoint>"),
credential
);
الحصول على جدول
ينشئ هذا النموذج مثيلا للفئة TableClient
باستخدام GetTableClient
أسلوب TableServiceClient
الفئة .
TableClient client = serviceClient.GetTableClient(
tableName: "<azure-cosmos-db-table-name>"
);
إنشاء كيان
أسهل طريقة لإنشاء كيان جديد في جدول هي إنشاء فئة تنفذ الواجهة ITableEntity
. يمكنك بعد ذلك إضافة خصائصك الخاصة إلى الفئة لملء أعمدة البيانات في صف الجدول هذا.
public record Product : ITableEntity
{
public required string RowKey { get; set; }
public required string PartitionKey { get; set; }
public required string Name { get; set; }
public required int Quantity { get; set; }
public required decimal Price { get; set; }
public required bool Clearance { get; set; }
public ETag ETag { get; set; } = ETag.All;
public DateTimeOffset? Timestamp { get; set; }
};
إنشاء كيان في الجدول باستخدام Product
الفئة عن طريق استدعاء TableClient.AddEntityAsync<T>
.
Product entity = new()
{
RowKey = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
PartitionKey = "gear-surf-surfboards",
Name = "Surfboard",
Quantity = 10,
Price = 300.00m,
Clearance = true
};
Response response = await client.UpsertEntityAsync<Product>(
entity: entity,
mode: TableUpdateMode.Replace
);
الحصول على كيان
يمكنك استرداد كيان معين من جدول باستخدام TableClient.GetEntityAsync<T>
الأسلوب . partitionKey
قم بتوفير و rowKey
كمعلمات لتحديد الصف الصحيح لتنفيذ قراءة نقطة سريعة لهذا الكيان.
Response<Product> response = await client.GetEntityAsync<Product>(
rowKey: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
partitionKey: "gear-surf-surfboards"
);
الاستعلام عن الكيانات
بعد إدراج كيان، يمكنك أيضا تشغيل استعلام للحصول على كافة الكيانات التي تطابق عامل تصفية معين باستخدام TableClient.Query<T>
الأسلوب . يقوم هذا المثال بتصفية المنتجات حسب الفئة باستخدام بناء جملة Language Integrated Query (LINQ)، والتي تعد ميزة لاستخدام نماذج مكتوبة ITableEntity
Product
مثل الفئة.
string category = "gear-surf-surfboards";
AsyncPageable<Product> results = client.QueryAsync<Product>(
product => product.PartitionKey == category
);
تحليل النتائج المرقمة للاستعلام عن طريق التكرار الحلقي عبر كل صفحة من النتائج باستخدام حلقة غير متزامنة.
List<Product> entities = new();
await foreach (Product product in results)
{
entities.Add(product);
}
تنظيف الموارد
عندما لم تعد بحاجة إلى نموذج التطبيق أو الموارد، قم بإزالة التوزيع المقابل وجميع الموارد.
azd down