Az Azure Cosmos DB-hez készült Microsoft .NET SDK v3 felfedezése
Ez a lecke a NoSQL-hez készült Azure Cosmos DB .NET SDK v3-ra összpontosít. (Microsoft.Azure.Cosmos NuGet-csomag.) Ha ismeri a .NET SDK korábbi verzióját, használhatja a kifejezésgyűjteményt és a dokumentumot.
Az azure-cosmos-dotnet-v3 GitHub-adattár a legújabb .NET-mintamegoldásokat tartalmazza. Ezekkel a megoldásokkal CRUD-t (létrehozást, olvasást, frissítést és törlést) és más gyakori műveleteket hajthat végre az Azure Cosmos DB-erőforrásokon.
Mivel az Azure Cosmos DB több API-modellt is támogat, a .NET SDK 3. verziója a "container" és az "item" általános kifejezéseket használja. A tárolók lehetnek gyűjtemények, grafikonok vagy táblák. Egy elem lehet dokumentum, él/csúcs vagy sor, és a tároló tartalma.
Az alábbiakban néhány olyan fontos műveletet mutatunk be, amelyeket ismernie kell. További példákért látogasson el a Korábban látható GitHub-hivatkozásra. Az alábbi példák a metódusok aszinkron verzióját használják.
CosmosClient
Újat CosmosClient
hoz létre egy kapcsolati sztring. CosmosClient
szálbiztos. Javasoljuk, hogy az alkalmazás élettartama során egyetlen példányt CosmosClient
tartson fenn, amely lehetővé teszi a hatékony kapcsolatkezelést és teljesítményt.
CosmosClient client = new CosmosClient(endpoint, key);
Adatbázis-példák
-adatbázis létrehozása
Ellenőrzi CosmosClient.CreateDatabaseIfNotExistsAsync
, hogy létezik-e adatbázis, és ha nem, hozza létre. A rendszer csak az adatbázist id
használja annak ellenőrzésére, hogy van-e meglévő adatbázis.
// An object containing relevant information about the response
DatabaseResponse databaseResponse = await client.CreateDatabaseIfNotExistsAsync(databaseId, 10000);
Adatbázis beolvasása azonosító alapján
Egy adatbázist olvas be az Azure Cosmos DB szolgáltatásból aszinkron műveletként.
DatabaseResponse readResponse = await database.ReadAsync();
Adatbázis törlése
Adatbázis törlése aszinkron műveletként.
await database.DeleteAsync();
Példák tárolókra
Tároló létrehozása
A Database.CreateContainerIfNotExistsAsync
metódus ellenőrzi, hogy létezik-e tároló, és ha nem, létrehozza azt. A rendszer csak a tárolót id
használja annak ellenőrzésére, hogy van-e meglévő tároló.
// Set throughput to the minimum value of 400 RU/s
ContainerResponse simpleContainer = await database.CreateContainerIfNotExistsAsync(
id: containerId,
partitionKeyPath: partitionKey,
throughput: 400);
Tároló lekérése azonosító alapján
Container container = database.GetContainer(containerId);
ContainerProperties containerProperties = await container.ReadContainerAsync();
Tároló törlése
Tároló törlése aszinkron műveletként.
await database.GetContainer(containerId).DeleteContainerAsync();
Példák elemekre
Elem létrehozása
Container.CreateItemAsync
A metódus használatával hozzon létre egy elemet. A metódushoz egy JSON szerializálható objektumra van szükség, amely egy tulajdonságot és egy id
partitionKey
.
ItemResponse<SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber));
Elem olvasása
Container.ReadItemAsync
A metódus használatával beolvashat egy elemet. A metódushoz típus szükséges az elem szerializálásához egy tulajdonsággal és egy id
partitionKey
.
string id = "[id]";
string accountNumber = "[partition-key]";
ItemResponse<SalesOrder> response = await container.ReadItemAsync(id, new PartitionKey(accountNumber));
Elem lekérdezése
A Container.GetItemQueryIterator
metódus egy Azure Cosmos-adatbázisban lévő tárolóban lévő elemek lekérdezését hozza létre paraméteres értékeket tartalmazó SQL-utasítás használatával. FeedIterator
Egy .
QueryDefinition query = new QueryDefinition(
"select * from sales s where s.AccountNumber = @AccountInput ")
.WithParameter("@AccountInput", "Account1");
FeedIterator<SalesOrder> resultSet = container.GetItemQueryIterator<SalesOrder>(
query,
requestOptions: new QueryRequestOptions()
{
PartitionKey = new PartitionKey("Account1"),
MaxItemCount = 1
});
Other resources
Az Azure-cosmos-dotnet-v3 GitHub-adattár tartalmazza a legújabb .NET-mintamegoldásokat a CRUD és más gyakori műveletek végrehajtásához az Azure Cosmos DB-erőforrásokon.
Ebben a cikkben az Azure Cosmos DB.NET V3 SDK(Microsoft.Azure.Cosmos) példákat talál az SQL API-hoz a GitHub-adattárban található konkrét példákra mutató közvetlen hivatkozásokhoz.