Az Azure Cosmos DB-hez készült Microsoft .NET SDK v3 felfedezése

Befejeződött

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 idpartitionKey.

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 idpartitionKey.

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. FeedIteratorEgy .

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