Cvičení – vytvoření účtu a prostředků rozhraní API pro NoSQL
Teď můžete vytvořit různé prostředky, jako jsou databáze, kontejnery a položky, které používáte ve svém účtu služby Azure Cosmos DB. V tomto cvičení vytvoříte databázi s názvem cosmicworks
jeden kontejner s názvem products
. Pokud tuto konzolovou aplikaci spustíte vícekrát, musíte se ujistit, že se kód nespustí při pokusu o opětovné vytvoření kontejneru.
V tuto chvíli máte několik klíčových požadavků:
- Vytvoření databáze, pokud ještě neexistuje
- Vytvoření kontejneru, pokud ještě neexistuje
Po dokončení tohoto cvičení projekt vytvoří všechny databáze nebo kontejnery, které vyžaduje ke spuštění.
Vytvořit databázi
Sada SDK obsahuje užitečné metody, které vytvoří nový prostředek, pokud ještě neexistuje. Pomocí těchtometodch Tady vytvoříte databázi.
Vraťte se do souboru Program.cs .
Vytvořte nebo získejte novou databázi voláním CreateDatabaseIfNotExistsAsync(String, ThroughputProperties, RequestOptions, CancellationToken). Uložte výsledek do proměnné s názvem
database
. Nezapomeňte nastavit tyto parametry:Parametr Hodnota id cosmicworks
Database database = await client.CreateDatabaseIfNotExistsAsync( id: "cosmicworks" );
Vypíše jedinečný identifikátor databáze.
Console.WriteLine($"[Database created]:\t{database.Id}");
Uložte soubor Program.cs.
Vytvoření kontejneru
Tady vytvoříte kontejner s konkrétní "řezem" sdílené propustnosti z databáze.
Vytvořte objekt vlastností pro nový kontejner pomocí typu ContainerProperties . Uložte výsledek do proměnné s názvem
properties
. Nezapomeňte nastavit tyto parametry:Parametr Hodnota id products
partitionKeyPath /categoryId
ContainerProperties properties = new( id: "products", partitionKeyPath: "/categoryId" );
Vytvořte objekt propustnosti automatického CreateAutoscaleThroughput(Int32) škálování pomocí statické metody. Uložte výsledek do proměnné s názvem
throughput
. Nezapomeňte nastavit tyto parametry:Parametr Hodnota autoscaleMaxThroughput 1000
var throughput = ThroughputProperties.CreateAutoscaleThroughput( autoscaleMaxThroughput: 1000 );
Vytvořte nebo získejte nový kontejner voláním CreateContainerIfNotExistsAsync(String, String, Nullable<Int32>, RequestOptions, CancellationToken). Uložte výsledek do proměnné s názvem
container
. Nezapomeňte nastavit tyto parametry:Container container = await database.CreateContainerIfNotExistsAsync( containerProperties: properties, throughputProperties: throughput );
Teď vypíšete jedinečný identifikátor kontejneru.
Console.WriteLine($"[Container created]:\t{container.Id}");
Uložte soubor Program.cs.
Vytvoření typů záznamů pro položky
Data jazyka C# lze reprezentovat pomocí různých typů, včetně tříd, struktur a záznamů. Pro tuto sadu SDK jsou záznamy užitečné, protože jsou ve výchozím nastavení neměnné. Pokud potřebujete, můžete přidat kód pro vytvoření upravené kopie záznamu. Záznamy mají také snadno čitelnou syntaxi a rychle se vytvářejí jen s několika řádky kódu. V této části vytvoříte základní typ pro všechny položky a jednotlivé typy pro každý "druh" položky.
Pomocí editoru Visual Studio Code vytvořte nový soubor s názvem Item.cs. Pak soubor otevřete v editoru.
Vytvořte základní typ záznamu s
Item
třemi vlastnostmi, které chcete použít ve všech položkách pro tento kontejner:id
,categoryId
atype
.public record Item( string Id, string CategoryId, string Type );
Uložte soubor Item.cs. Zavřete soubor Item.cs.
Vytvořte další nový soubor s názvem Category.cs. Otevřete tento soubor v editoru.
Vytvořte nový typ s názvem Kategorie , který dědí z typu Položka . Ujistěte se, že typ předá své hodnoty základní implementaci, a nastavte proměnnou typu na výstup názvu typu Category .
public record Category( string Id, string CategoryId ) : Item( Id, CategoryId, nameof(Category) );
Uložte soubor Category.cs. Zavřete soubor Category.cs.
Nakonec vytvořte poslední soubor s názvem Product.cs. Otevřete tento soubor také v editoru.
Vytvořte nový typ s názvem Product , který dědí z položky , a přidá několik nových vlastností:
name
,price
,archived
aquantity
.public record Product( string Id, string CategoryId ) : Item( Id, CategoryId, nameof(Product) ) { public string Name { get; init; } = default!; public decimal Price { get; init; } public bool Archived { get; init; } public int Quantity { get; init; } };
Uložte soubor Product.cs. Zavřete soubor Product.cs.
Kontrola práce
Vaše aplikace teď vytvoří databázi a kontejner. Metody, které jste použili k vytvoření těchto prostředků, jsou dostatečně odolné, aby se spustily vícekrát, aniž by to způsobilo výjimku. Tady spustíte aplikaci a zkontrolujete výstup jedinečných identifikátorů obou prostředků.
Spuštění aplikace .NET v terminálu
dotnet run
Sledujte výstup spuštění aplikace. Výstup by se měl shodovat s následujícím příkladem:
... [Database created]: cosmicworks [Container created]: products