Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam panduan cepat ini, Anda menerapkan aplikasi Azure Cosmos DB for Table dasar menggunakan Azure SDK untuk .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 | Kode sumber pustaka | Paket (NuGet) | Azure Developer CLI
Prasyarat
- Azure Developer CLI
- Desktop Docker
- .NET 9.0
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
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 loginGunakan
azd inituntuk menginisialisasi proyek.azd init --template cosmos-db-table-dotnet-quickstartSelama inisialisasi, konfigurasikan nama lingkungan yang unik.
Sebarkan akun Azure Cosmos DB menggunakan
azd up. Templat Bicep juga mengimplementasikan aplikasi web sampel.azd upSelama 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/webfolder .cd ./src/webJika belum diinstal, instal
Azure.Data.Tablespaket menggunakandotnet add package.dotnet add package Azure.Data.TablesBuka dan tinjau file src/web/Microsoft.Samples.Cosmos.Table.Quickstart.Web.csproj untuk memvalidasi bahwa entri ada
Azure.Data.Tables.
Mengimpor pustaka
Impor namespace Azure.Identity dan Azure.Data.Tables ke dalam kode aplikasi Anda.
using Azure.Identity;
using 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 baru dari kelas TableServiceClient.
DefaultAzureCredential credential = new();
TableServiceClient serviceClient = new(
endpoint: new Uri("<azure-cosmos-db-table-account-endpoint>"),
credential
);
Memesan meja
Sampel ini membuat sebuah instans dari kelas TableClient menggunakan metode GetTableClient dari kelas TableServiceClient.
TableClient client = serviceClient.GetTableClient(
tableName: "<azure-cosmos-db-table-name>"
);
Membuat entitas
Cara term mudah untuk membuat entitas baru dalam tabel adalah dengan membuat kelas yang mengimplementasikan ITableEntity antarmuka. Anda kemudian dapat menambahkan properti Anda sendiri ke kelas untuk mengisi kolom data di baris tabel tersebut.
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; }
};
Buat entitas dalam tabel menggunakan Product kelas dengan memanggil 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
);
Mendapatkan entitas
Anda dapat mengambil entitas tertentu dari tabel menggunakan metode .TableClient.GetEntityAsync<T> Berikan partitionKey dan rowKey sebagai parameter untuk mengidentifikasi baris yang benar guna melakukan pembacaan cepat titik pada entitas tersebut.
Response<Product> response = await client.GetEntityAsync<Product>(
rowKey: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
partitionKey: "gear-surf-surfboards"
);
Mengkueri entitas
Setelah menyisipkan entitas, Anda juga bisa menjalankan kueri untuk mendapatkan semua entitas yang cocok dengan filter tertentu dengan menggunakan metode .TableClient.Query<T> Contoh ini memfilter produk menurut kategori menggunakan sintaks Language Integrated Query (LINQ), yang merupakan manfaat menggunakan model yang diketik ITableEntity seperti Product kelas .
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