Rövid útmutató: Az Azure Cosmos DB for Table használata a .NET-hez készült Azure SDK-val
Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for Table alkalmazást a .NET-hez készült Azure SDK használatával. Az Azure Cosmos DB for Table egy séma nélküli adattár, amely lehetővé teszi, hogy az alkalmazások strukturált táblaadatokat tároljanak a felhőben. Megtudhatja, hogyan hozhat létre táblákat, sorokat, és hogyan hajthat végre alapvető feladatokat az Azure Cosmos DB-erőforrásban az Azure SDK for .NET használatával.
API-referenciadokumentáció Kódtár forráskódcsomagja | (NuGet) | Azure Developer CLI |
Előfeltételek
- Azure Developer CLI
- Docker Desktop
- .NET 9.0
Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
A projekt inicializálása
Az Azure Developer CLI (azd
) használatával hozzon létre egy Azure Cosmos DB for Table-fiókot, és helyezzen üzembe egy tárolóalapú mintaalkalmazást. A mintaalkalmazás az ügyfélkódtárat használja a mintaadatok kezelésére, létrehozására, olvasására és lekérdezésére.
Nyisson meg egy terminált egy üres könyvtárban.
Ha még nincs hitelesítve, jelentkezzen be az Azure Developer CLI-be a használatával
azd auth login
. Kövesse az eszköz által megadott lépéseket a parancssori felületre való hitelesítéshez az ön által előnyben részesített Azure-hitelesítő adatokkal.azd auth login
A projekt inicializálására használható
azd init
.azd init --template cosmos-db-table-dotnet-quickstart
Az inicializálás során konfiguráljon egy egyedi környezetnevet.
Az Azure Cosmos DB-fiók üzembe helyezése a következő használatával
azd up
: . A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.azd up
A kiépítési folyamat során válassza ki az előfizetést, a kívánt helyet és a célerőforrás-csoportot. Várja meg, amíg a kiépítési folyamat befejeződik. A folyamat körülbelül öt percet vehet igénybe.
Az Azure-erőforrások kiépítése után a kimenet tartalmazza a futó webalkalmazás URL-címét.
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.
A konzol URL-címével keresse meg a webalkalmazást a böngészőben. Figyelje meg a futó alkalmazás kimenetét.
Telepítse az ügyfélkódtárat
Az ügyfélkódtár csomagként Azure.Data.Tables
a NuGeten keresztül érhető el.
Nyisson meg egy terminált, és keresse meg a
/src/web
mappát.cd ./src/web
Ha még nincs telepítve, telepítse a csomagot a
Azure.Data.Tables
következőveldotnet add package
: .dotnet add package Azure.Data.Tables
Nyissa meg és tekintse át az src/web/Microsoft.Samples.Cosmos.Table.Quickstart.Web.csproj fájlt annak ellenőrzéséhez, hogy a
Azure.Data.Tables
bejegyzés létezik-e.
Objektummodell
Név | Leírás |
---|---|
TableServiceClient | Ez az osztály az elsődleges ügyfélosztály, és a fiókszintű metaadatok vagy adatbázisok kezelésére szolgál. |
TableClient | Ez az osztály a fiókon belüli tábla ügyfélét jelöli. |
Kódpéldák
A sablonban lévő mintakód egy nevű táblát cosmicworks-products
használ. A cosmicworks-products
táblázat olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az ár, az egyedi azonosító és az egyes termékek értékesítési jelzője. A tároló egy egyedi azonosítót használ sorkulcsként és kategóriaként partíciókulcsként.
Az ügyfél hitelesítése
Ez a minta létrehozza az osztály új példányát TableServiceClient
.
DefaultAzureCredential credential = new();
TableServiceClient serviceClient = new(
endpoint: new Uri("<azure-cosmos-db-table-account-endpoint>"),
credential
);
Táblázat lekérése
Ez a minta az TableClient
osztály egy példányát hozza létre az GetTableClient
osztály metódusával TableServiceClient
.
TableClient client = serviceClient.GetTableClient(
tableName: "<azure-cosmos-db-table-name>"
);
Entitás létrehozása
Az új entitások táblabeli létrehozásának legegyszerűbb módja egy olyan osztály létrehozása, amely megvalósítja a ITableEntity
felületet. Ezután hozzáadhatja saját tulajdonságait az osztályhoz az adott táblasor adatoszlopainak feltöltéséhez.
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; }
};
Hozzon létre egy entitást a táblában az Product
osztály meghívásával 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
);
Entitás lekérése
A metódussal lekérhet egy adott entitást egy TableClient.GetEntityAsync<T>
táblából. Adja meg a partitionKey
megfelelő sort a megfelelő sor azonosításához, és rowKey
adja meg a paramétereket az entitás gyors pontolvasásához .
Response<Product> response = await client.GetEntityAsync<Product>(
rowKey: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
partitionKey: "gear-surf-surfboards"
);
Entitások lekérdezése
Miután beszúrt egy entitást, lekérdezést is futtathat az adott szűrőnek megfelelő összes entitás lekéréséhez a TableClient.Query<T>
metódus használatával. Ez a példa kategóriánként szűri a termékeket a Language Integrated Query (LINQ) szintaxissal, ami az olyan beírt ITableEntity
modellek használatának előnye, mint az Product
osztály.
string category = "gear-surf-surfboards";
AsyncPageable<Product> results = client.QueryAsync<Product>(
product => product.PartitionKey == category
);
Elemezheti a lekérdezés lapszámozott eredményeit úgy, hogy aszinkron hurkot használva végighalad az eredmények minden oldalán.
List<Product> entities = new();
await foreach (Product product in results)
{
entities.Add(product);
}
Az erőforrások eltávolítása
Ha már nincs szüksége a mintaalkalmazásra vagy erőforrásokra, távolítsa el a megfelelő üzembe helyezést és az összes erőforrást.
azd down