Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Important
Olyan adatbázismegoldást keres nagy léptékű forgatókönyvekhez, amelyekben 99,9999-es% rendelkezésre állási szolgáltatásiszint-szerződés (SLA), azonnali automatikus skálázás és automatikus feladatátvétel több régióban? Fontolja meg az Azure Cosmos DB-t a NoSQL-hoz.
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ód | Csomag (NuGet) | Azure Developer CLI
Prerequisites
- Azure Developer CLI
- Docker Desktop
- .NET 9.0
Ha nem rendelkezik Azure-fiókkal, a kezdés előtt 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 mappában.
Ha még nincs hitelesítve, jelentkezzen be az Azure Developer CLI-be a
azd auth loginhasználatával. 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 loginA projekt inicializálására használható
azd init.azd init --template cosmos-db-table-dotnet-quickstartAz inicializálás során konfiguráljon egy egyedi környezetnevet.
Az Azure Cosmos DB-fiókot
azd uphasználatával helyezze üzembe. A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.azd upA 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.
A 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 a klienskönyvtárat
Az ügyfélkönyvtár a Azure.Data.Tables csomagként érhető el a NuGeten keresztül.
Nyisson meg egy terminált, és keresse meg a
/src/webmappát.cd ./src/webHa még nincs telepítve, a
Azure.Data.Tablescsomagot telepítse adotnet add packagesegítségével.dotnet add package Azure.Data.TablesNyissa 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.Tablesbejegyzés létezik-e.
Könyvtárak importálása
Importálja a Azure.Identity és Azure.Data.Tables névtereket az alkalmazás kódjába.
using Azure.Identity;
using Azure.Data.Tables;
Objektummodell
| Name | Description |
|---|---|
| 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. |
Példakódok
- Az ügyfél hitelesítése
- Táblázat lekérése
- Entitás létrehozása
- Egy entitás lekérése
- Entitások lekérdezése
A sablonban lévő mintakód egy nevű táblát cosmicworks-productshaszná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 példa létrehozza a(z) TableServiceClient osztály egy új példányát.
DefaultAzureCredential credential = new();
TableServiceClient serviceClient = new(
endpoint: new Uri("<azure-cosmos-db-table-account-endpoint>"),
credential
);
Szerezz egy asztalt
Ez a minta az TableClient osztály egy példányát hozza létre a GetTableClient osztály TableServiceClient metódusának használatával.
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 megszerzése
A metódussal lekérhet egy adott entitást egy TableClient.GetEntityAsync<T> táblából. Adja meg a partitionKey és rowKey paramétereket, hogy azonosítsa a megfelelő sort 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);
}
Erőforrások tisztí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