Szybki start: usługa Azure Cosmos DB dla tabeli dla platformy .NET
DOTYCZY: Tabeli
W tym przewodniku Szybki start pokazano, jak rozpocząć pracę z usługą Azure Cosmos DB for Table z poziomu aplikacji platformy .NET. Usługa Azure Cosmos DB for Table to bez schematu magazyn danych, który umożliwia aplikacjom przechowywanie ustrukturyzowanych danych NoSQL w chmurze. Dowiesz się, jak tworzyć tabele, wiersze i wykonywać podstawowe zadania w zasobie usługi Azure Cosmos DB przy użyciu pakietu Azure.Data.Tables (NuGet).
Uwaga
Przykładowe fragmenty kodu są dostępne w usłudze GitHub jako projekt platformy .NET.
Dokumentacja referencyjna | interfejsu API dla tabelPakiet Azure.Data.Tables (NuGet)
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- .NET 6.0
- Interfejs usługi Azure Command-Line (CLI) lub Azure PowerShell
Sprawdzanie wymagań wstępnych
- W terminalu lub oknie polecenia uruchom polecenie
dotnet --list-sdks
, aby sprawdzić, czy platforma .NET 6.x jest jedną z dostępnych wersji. - Uruchom
az --version
polecenie (interfejs wiersza polecenia platformy Azure) lubGet-Module -ListAvailable AzureRM
(Azure PowerShell), aby sprawdzić, czy masz zainstalowane odpowiednie narzędzia wiersza polecenia platformy Azure.
Konfigurowanie
W tej sekcji przedstawiono sposób tworzenia konta usługi Azure Cosmos DB i konfigurowania projektu korzystającego z interfejsu API dla pakietów NuGet tabel.
Tworzenie konta usługi Azure Cosmos DB
Ten przewodnik Szybki start utworzy pojedyncze konto usługi Azure Cosmos DB przy użyciu interfejsu API dla tabeli.
Utwórz zmienne powłoki dla parametrów accountName, resourceGroupName i location.
# Variable for resource group name resourceGroupName="msdocs-cosmos-quickstart-rg" location="westus" # Variable for account name with a randomnly generated suffix let suffix=$RANDOM*$RANDOM accountName="msdocs-$suffix"
Jeśli jeszcze tego nie zrobiono, zaloguj się do interfejsu wiersza polecenia platformy
az login
Azure przy użyciu polecenia .Użyj polecenia ,
az group create
aby utworzyć nową grupę zasobów w ramach subskrypcji.az group create \ --name $resourceGroupName \ --location $location
az cosmosdb create
Użyj polecenia , aby utworzyć nowe konto usługi Azure Cosmos DB dla tabel z ustawieniami domyślnymi.az cosmosdb create \ --resource-group $resourceGroupName \ --name $accountName \ --locations regionName=$location --capabilities EnableTable
Pobieranie interfejsu API dla parametrów połączenia tabeli
Znajdź interfejs API dla parametrów połączenia tabeli z listy parametrów połączenia dla konta za pomocą
az cosmosdb list-connection-strings
polecenia .az cosmosdb list-connection-strings \ --resource-group $resourceGroupName \ --name $accountName
Zarejestruj wartości parametrów połączenia tabeli podstawowej . Te poświadczenia będą używane później.
Tworzenie nowej aplikacji .NET
Utwórz nową aplikację .NET w pustym folderze przy użyciu preferowanego terminalu. Użyj polecenia , dotnet new console
aby utworzyć nową aplikację konsolową.
dotnet new console --output <app-name>
Instalowanie pakietu NuGet
Dodaj pakiet NuGet Azure.Data.Tables do nowego projektu platformy .NET. dotnet add package
Użyj polecenia określającego nazwę pakietu NuGet.
dotnet add package Azure.Data.Tables
Konfigurowanie zmiennych środowiskowych
Aby użyć wartości PARAMETRY POŁĄCZENIA w kodzie, ustaw tę wartość na komputerze lokalnym z uruchomioną aplikacją. Aby ustawić zmienną środowiskową, użyj preferowanego terminalu, aby uruchomić następujące polecenia:
$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"
Przykłady kodu
Przykładowy kod opisany w tym artykule tworzy tabelę o nazwie adventureworks
. Każdy wiersz tabeli zawiera szczegóły produktu, takie jak nazwa, kategoria, ilość i wskaźnik sprzedaży. Każdy produkt zawiera również unikatowy identyfikator.
Do interakcji z tymi zasobami użyjesz następującego interfejsu API dla klas tabel:
TableServiceClient
— Ta klasa udostępnia metody wykonywania operacji na poziomie usługi za pomocą usługi Azure Cosmos DB dla tabeli.TableClient
— Ta klasa umożliwia interakcję z tabelami hostowanymi w interfejsie API tabel usługi Azure Cosmos DB.TableEntity
— Ta klasa jest odwołaniem do wiersza w tabeli, który umożliwia zarządzanie właściwościami i danymi kolumn.
Uwierzytelnianie klienta
W katalogu projektu otwórz plik Program.cs . W edytorze dodaj dyrektywę using dla elementu Azure.Data.Tables
.
using Azure.Data.Tables;
Zdefiniuj nowe wystąpienie TableServiceClient
klasy przy użyciu konstruktora i Environment.GetEnvironmentVariable
odczytaj ustawione wcześniej parametry połączenia.
// New instance of the TableClient class
TableServiceClient tableServiceClient = new TableServiceClient(Environment.GetEnvironmentVariable("COSMOS_CONNECTION_STRING"));
Tworzenie tabeli
Pobierz wystąpienie TableClient
klasy .TableServiceClient
Użyj metody w elemecie TableClient.CreateIfNotExistsAsync
TableClient
, aby utworzyć nową tabelę, jeśli jeszcze nie istnieje. Ta metoda zwróci odwołanie do istniejącej lub nowo utworzonej tabeli.
// New instance of TableClient class referencing the server-side table
TableClient tableClient = tableServiceClient.GetTableClient(
tableName: "adventureworks"
);
await tableClient.CreateIfNotExistsAsync();
Tworzenie elementu
Najprostszym sposobem utworzenia nowego elementu w tabeli jest utworzenie klasy implementujące ITableEntity
interfejs. Następnie możesz dodać własne właściwości do klasy, aby wypełnić kolumny danych w tym wierszu tabeli.
// C# record type for items in the table
public record Product : ITableEntity
{
public string RowKey { get; set; } = default!;
public string PartitionKey { get; set; } = default!;
public string Name { get; init; } = default!;
public int Quantity { get; init; }
public bool Sale { get; init; }
public ETag ETag { get; set; } = default!;
public DateTimeOffset? Timestamp { get; set; } = default!;
}
Utwórz element w kolekcji przy użyciu klasy , wywołując metodę Product
TableClient.AddEntityAsync<T>
.
// Create new item using composite key constructor
var prod1 = new Product()
{
RowKey = "68719518388",
PartitionKey = "gear-surf-surfboards",
Name = "Ocean Surfboard",
Quantity = 8,
Sale = true
};
// Add new item to server-side table
await tableClient.AddEntityAsync<Product>(prod1);
Pobieranie elementu
Konkretny element można pobrać z tabeli przy użyciu TableEntity.GetEntityAsync<T>
metody . partitionKey
Podaj parametry i rowKey
w celu zidentyfikowania poprawnego wiersza w celu szybkiego odczytu tego elementu.
// Read a single item from container
var product = await tableClient.GetEntityAsync<Product>(
rowKey: "68719518388",
partitionKey: "gear-surf-surfboards"
);
Console.WriteLine("Single product:");
Console.WriteLine(product.Value.Name);
Elementy zapytań
Po wstawieniu elementu można również uruchomić zapytanie, aby pobrać wszystkie elementy pasujące do określonego filtru TableClient.Query<T>
przy użyciu metody . Ten przykład filtruje produkty według kategorii przy użyciu składni Linq , która jest zaletą używania modeli typowych ITableEntity
, takich jak Product
klasa.
Uwaga
Możesz również wykonywać zapytania o elementy przy użyciu składni OData . Przykład tego podejścia można znaleźć w samouczku Dotyczącym danych zapytań .
// Read multiple items from container
var prod2 = new Product()
{
RowKey = "68719518390",
PartitionKey = "gear-surf-surfboards",
Name = "Sand Surfboard",
Quantity = 5,
Sale = false
};
await tableClient.AddEntityAsync<Product>(prod2);
var products = tableClient.Query<Product>(x => x.PartitionKey == "gear-surf-surfboards");
Console.WriteLine("Multiple products:");
foreach (var item in products)
{
Console.WriteLine(item.Name);
}
Uruchamianie kodu
Ta aplikacja tworzy tabelę interfejsu API tabel usługi Azure Cosmos DB. Następnie przykład tworzy element, a następnie odczytuje dokładnie ten sam element z powrotem. Na koniec przykład tworzy drugi element, a następnie wykonuje zapytanie, które powinno zwrócić wiele elementów. W każdym kroku przykład wyprowadza metadane do konsoli o wykonanych krokach.
Aby uruchomić aplikację, użyj terminalu, aby przejść do katalogu aplikacji i uruchomić aplikację.
dotnet run
Dane wyjściowe aplikacji powinny być podobne do tego przykładu:
Single product name:
Yamba Surfboard
Multiple products:
Yamba Surfboard
Sand Surfboard
Czyszczenie zasobów
Jeśli nie potrzebujesz już konta usługi Azure Cosmos DB dla tabeli, możesz usunąć odpowiednią grupę zasobów.
az group delete
Użyj polecenia , aby usunąć grupę zasobów.
az group delete --name $resourceGroupName
Następne kroki
W tym przewodniku Szybki start przedstawiono sposób tworzenia konta usługi Azure Cosmos DB dla tabel, tworzenia tabeli i zarządzania wpisami przy użyciu zestawu SDK platformy .NET. Teraz możesz dowiedzieć się więcej na temat zestawu SDK, aby dowiedzieć się, jak wykonywać bardziej zaawansowane zapytania o dane i zadania zarządzania w usłudze Azure Cosmos DB dla zasobów tabel.