Quickstart: Azure Cosmos DB for Table-bibliotheek voor .NET
VAN TOEPASSING OP: Tafel
In deze quickstart ziet u hoe u aan de slag gaat met Azure Cosmos DB for Table vanuit een .NET-toepassing. Azure Cosmos DB for Table is een schemaloze gegevensopslag waarmee toepassingen gestructureerde tabelgegevens in de cloud kunnen opslaan. U leert hoe u tabellen, rijen maakt en basistaken uitvoert in uw Azure Cosmos DB-resource met behulp van de Azure SDK voor .NET
Api-referentiedocumentatiebibliotheek | broncodepakket | (NuGet) | Azure Developer CLI
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Azure Developer CLI
- Docker Desktop
- .NET 9.0
Het project initialiseren
Gebruik de Azure Developer CLI (azd
) om een Azure Cosmos DB for Table-account te maken en een in een container geplaatste voorbeeldtoepassing te implementeren. De voorbeeldtoepassing maakt gebruik van de clientbibliotheek voor het beheren, maken, lezen en opvragen van voorbeeldgegevens.
Open een terminal in een lege map.
Als u nog niet bent geverifieerd, moet u zich verifiëren bij de Azure Developer CLI met behulp van
azd auth login
. Volg de stappen die door het hulpprogramma zijn opgegeven om te verifiëren bij de CLI met behulp van uw favoriete Azure-referenties.azd auth login
Gebruik
azd init
dit om het project te initialiseren.azd init --template cosmos-db-table-dotnet-quickstart
Configureer tijdens de initialisatie een unieke omgevingsnaam.
Implementeer het Azure Cosmos DB-account met behulp van
azd up
. De Bicep-sjablonen implementeren ook een voorbeeldwebtoepassing.azd up
Selecteer tijdens het inrichtingsproces uw abonnement, gewenste locatie en doelresourcegroep. Wacht tot het inrichtingsproces is voltooid. Het proces kan ongeveer vijf minuten duren.
Zodra het inrichten van uw Azure-resources is voltooid, wordt er een URL naar de actieve webtoepassing opgenomen in de uitvoer.
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.
Gebruik de URL in de console om naar uw webtoepassing in de browser te navigeren. Bekijk de uitvoer van de actieve app.
De clientbibliotheek installeren
De clientbibliotheek is beschikbaar via NuGet, als pakket Azure.Data.Tables
.
Open een terminal en navigeer naar de
/src/web
map.cd ./src/web
Als dit nog niet is geïnstalleerd, installeert u het
Azure.Data.Tables
pakket met behulp vandotnet add package
.dotnet add package Azure.Data.Tables
Open het bestand src/web/Microsoft.Samples.Cosmos.Table.Quickstart.Web.csproj om te controleren of de
Azure.Data.Tables
vermelding bestaat.
Objectmodel
Name | Beschrijving |
---|---|
TableServiceClient | Deze klasse is de primaire clientklasse en wordt gebruikt voor het beheren van metagegevens of databases voor het hele account. |
TableClient | Deze klasse vertegenwoordigt de client voor een tabel in het account. |
Codevoorbeelden
De voorbeeldcode in de sjabloon maakt gebruik van een tabel met de naam cosmicworks-products
. De cosmicworks-products
tabel bevat details zoals naam, categorie, hoeveelheid, prijs, een unieke id en een verkoopvlag voor elk product. De container gebruikt een unieke id* als rijsleutel en categorie als partitiesleutel.
De client verifiëren
In dit voorbeeld wordt een nieuw exemplaar van de TableServiceClient
klasse gemaakt.
TableServiceClient serviceClient = new(
endpoint: new Uri("<azure-cosmos-db-table-account-endpoint>"),
credential
);
Een tabel ophalen
In dit voorbeeld wordt een exemplaar van de TableClient
klasse gemaakt met behulp van de GetTableClient
methode van de TableServiceClient
klasse.
TableClient client = serviceClient.GetTableClient(
tableName: "<azure-cosmos-db-table-name>"
);
Een item maken
De eenvoudigste manier om een nieuw item in een tabel te maken, is door een klasse te maken waarmee de ITableEntity
interface wordt geïmplementeerd. Vervolgens kunt u uw eigen eigenschappen toevoegen aan de klasse om kolommen met gegevens in die tabelrij te vullen.
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; }
};
Maak een item in de verzameling met behulp van de Product
klasse door aan te roepen 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
);
Een item ophalen
U kunt een specifiek item ophalen uit een tabel met behulp van de TableClient.GetEntityAsync<T>
methode. Geef de partitionKey
en rowKey
als parameters op om de juiste rij te identificeren om een snelle leesbewerking van dat item uit te voeren.
Response<Product> response = await client.GetEntityAsync<Product>(
rowKey: "68719518391",
partitionKey: "gear-surf-surfboards"
);
Query-items
Nadat u een item hebt ingevoegd, kunt u ook een query uitvoeren om alle items op te halen die overeenkomen met een specifiek filter met behulp van de TableClient.Query<T>
methode. In dit voorbeeld worden producten gefilterd op categorie met behulp van Linq-syntaxis . Dit is een voordeel van het gebruik van getypte ITableEntity
modellen zoals de Product
klasse.
Notitie
U kunt ook query's uitvoeren op items met behulp van de OData-syntaxis . In de zelfstudie Querygegevens ziet u een voorbeeld van deze benadering.
string category = "gear-surf-surfboards";
AsyncPageable<Product> results = client.QueryAsync<Product>(
product => product.PartitionKey == category
);
Parseer de gepagineerde resultaten van de query door elke pagina met resultaten te doorlopen met behulp van een asynchrone lus.
List<Product> entities = new();
await foreach (Product product in results)
{
entities.Add(product);
}
Resources opschonen
Wanneer u de voorbeeldtoepassing of resources niet meer nodig hebt, verwijdert u de bijbehorende implementatie en alle resources.
azd down