Mulai cepat: Pustaka Azure Cosmos DB for Table untuk .NET
BERLAKU UNTUK: Meja
Mulai cepat ini menunjukkan cara memulai Azure Cosmos DB for Table dari aplikasi .NET. Azure Cosmos DB for Table adalah penyimpanan data tanpa skema yang memungkinkan aplikasi menyimpan data tabel terstruktur di cloud. Anda mempelajari cara membuat tabel, baris, dan melakukan tugas dasar dalam sumber daya Azure Cosmos DB Anda menggunakan Azure SDK untuk .NET
Dokumentasi | referensi API Paket kode | sumber pustaka (NuGet) | Azure Developer CLI
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Azure Developer CLI
- Desktop Docker
- .NET 9.0
Menginisialisasi proyek
Gunakan Azure Developer CLI (azd
) untuk membuat akun Azure Cosmos DB for Table dan menyebarkan aplikasi sampel kontainer. Aplikasi sampel menggunakan pustaka klien untuk mengelola, membuat, membaca, dan mengkueri data sampel.
Buka terminal di direktori kosong.
Jika Anda belum diautentikasi, autentikasi ke Azure Developer CLI menggunakan
azd auth login
. Ikuti langkah-langkah yang ditentukan oleh alat untuk mengautentikasi ke CLI menggunakan kredensial Azure pilihan Anda.azd auth login
Gunakan
azd init
untuk menginisialisasi proyek.azd init --template cosmos-db-table-dotnet-quickstart
Selama inisialisasi, konfigurasikan nama lingkungan yang unik.
Sebarkan akun Azure Cosmos DB menggunakan
azd up
. Templat Bicep juga menyebarkan aplikasi web sampel.azd up
Selama proses provisi, pilih langganan Anda, lokasi yang diinginkan, dan grup sumber daya target. Tunggu hingga proses provisi selesai. Prosesnya dapat memakan waktu sekitar lima menit.
Setelah provisi sumber daya Azure Anda selesai, URL ke aplikasi web yang sedang berjalan disertakan dalam output.
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.
Gunakan URL di konsol untuk menavigasi ke aplikasi web Anda di browser. Amati output aplikasi yang sedang berjalan.
Memasang pustaka klien
Pustaka klien tersedia melalui NuGet, sebagai Azure.Data.Tables
paket.
Buka terminal dan navigasi ke
/src/web
folder .cd ./src/web
Jika belum diinstal, instal
Azure.Data.Tables
paket menggunakandotnet add package
.dotnet add package Azure.Data.Tables
Buka dan tinjau file src/web/Microsoft.Samples.Cosmos.Table.Quickstart.Web.csproj untuk memvalidasi bahwa entri ada
Azure.Data.Tables
.
Model objek
Nama | Deskripsi |
---|---|
TableServiceClient | Kelas ini adalah kelas klien utama dan digunakan untuk mengelola metadata atau database di seluruh akun. |
TableClient | Kelas ini mewakili klien untuk tabel dalam akun. |
Contoh kode
Kode sampel dalam templat menggunakan tabel bernama cosmicworks-products
. Tabel cosmicworks-products
berisi detail seperti nama, kategori, kuantitas, harga, pengidentifikasi unik, dan bendera penjualan untuk setiap produk. Kontainer menggunakan pengidentifikasi unik* sebagai kunci baris dan kategori sebagai kunci partisi.
Mengautentikasi klien
Sampel ini membuat instans TableServiceClient
baru kelas.
TableServiceClient serviceClient = new(
endpoint: new Uri("<azure-cosmos-db-table-account-endpoint>"),
credential
);
Mendapatkan tabel
Sampel ini membuat instans TableClient
kelas menggunakan GetTableClient
metode TableServiceClient
kelas .
TableClient client = serviceClient.GetTableClient(
tableName: "<azure-cosmos-db-table-name>"
);
Membuat item
Cara termudah untuk membuat item baru dalam tabel adalah dengan membuat kelas yang mengimplementasikan antarmuka ITableEntity
. Anda kemudian dapat menambahkan properti Anda sendiri ke kelas untuk mengisi kolom data di baris tabel tersebut.
public record Product : ITableEntity
{
public string RowKey { get; set; } = $"{Guid.NewGuid()}";
public string PartitionKey { get; set; } = String.Empty;
public string Name { get; set; } = String.Empty;
public int Quantity { get; set; } = 0;
public decimal Price { get; set; } = 0.0m;
public bool Clearance { get; set; } = false;
public ETag ETag { get; set; } = ETag.All;
public DateTimeOffset? Timestamp { get; set; }
};
Buat item dalam koleksi menggunakan kelas Product
dengan memanggil TableClient.AddEntityAsync<T>
.
Product entity = new()
{
RowKey = "68719518391",
PartitionKey = "gear-surf-surfboards",
Name = "Surfboard",
Quantity = 10,
Price = 300.00m,
Clearance = true
};
Response response = await client.UpsertEntityAsync<Product>(
entity: entity,
mode: TableUpdateMode.Replace
);
Mendapatkan item
Anda dapat mengambil item tertentu dari tabel menggunakan metode TableClient.GetEntityAsync<T>
. Berikan partitionKey
dan rowKey
sebagai parameter untuk mengidentifikasi baris yang benar guna melakukan pembacaan titik cepat dari item tersebut.
Response<Product> response = await client.GetEntityAsync<Product>(
rowKey: "68719518391",
partitionKey: "gear-surf-surfboards"
);
Buat kueri item
Setelah menyisipkan item, Anda bisa menjalankan kueri untuk mendapatkan semua item yang cocok dengan filter tertentu dengan menggunakan metode TableClient.Query<T>
. Contoh ini memfilter produk menurut kategori menggunakan sintaks Linq, yaitu manfaat penggunaan model ITableEntity
yang spesifik seperti kelas Product
.
Catatan
Anda juga bisa mengkueri item menggunakan sintaks OData . Anda dapat melihat contoh pendekatan ini dalam tutorial Data Kueri .
string category = "gear-surf-surfboards";
AsyncPageable<Product> results = client.QueryAsync<Product>(
product => product.PartitionKey == category
);
Uraikan hasil kueri yang dipaginasi dengan mengulangi setiap halaman hasil menggunakan perulangan asinkron.
List<Product> entities = new();
await foreach (Product product in results)
{
entities.Add(product);
}
Membersihkan sumber daya
Saat Anda tidak lagi memerlukan aplikasi sampel atau sumber daya, hapus penyebaran dan semua sumber daya yang sesuai.
azd down