Neuer Datenprovider für Azure Cosmos DB

Azure Cosmos DB ist eine vollständig verwaltete NoSQL-Datenbank für die moderne App-Entwicklung von Microsoft, die sich immer größerer Beliebtheit erfreut. Für die Anbindung an Cosmos DB stehen verschiedene APIs zur Verfügung. Unter anderem SQL-API, Cassandra-API oder MongoDB-API. Da wir bereits über die entsprechenden Datenprovider eine Verbindung zu MongoDB oder Cassandra herstellen können, verwenden wir für den Provider die SQL-API.

Azure Cosmos DB erstellt Ressourcen in einer Hierarchie, die aus Konten, Datenbanken, Containern und Elementen besteht:

Erste Schritte

Zunächst musst du in deinem Projekt einen Verweis auf die combit.ListLabel28.CosmosDBDataProvider.dll hinzufügen (oder das entsprechende NuGet-Paket verwenden). Zusätzlich benötigst du das Microsoft.Azure.Cosmos-NuGet-Paket.

Um eine Verbindung herzustellen, musst du lediglich eine Instanz des CosmosDbDataProvider erstellen und die Verbindungsinformationen im Konstruktor angeben:

CosmosDbDataProvider<Family> provider = new CosmosDbDataProvider<Family>(<YourEndpointUri>, <YourPrimaryKey>, <databaseId>, <containerId>);
ListLabel LL = new ListLabel();
LL.DataSource = provider;
LL.Design();

Hinweis

Hier muss ein Typ für die generische Providerklasse angegeben werden, der der Klasse oder dem Datensatztyp des Elements im Container entspricht. Im Beispiel oben ist dies die Klasse „Family“. Diesen Typ gibst du auch an, wenn du Elemente in den Container schreibst oder im Container ausliest. Weitere Hinweise zur SQL-API findest du hier: Schnellstart: Azure Cosmos DB for NoSQL-Clientbibliothek für .NET

Ein Element der Klasse „Family“ im Azure-Cosmos-DB-Container würde dann beispielsweise wie folgt aussehen:

Im List & Label Designer findest du diese Struktur wieder und kannst sie mitsamt der Relationen in deinem Bericht verwenden:

Optionaler Parameter

Mit der oben erstellten Instanz erhältst du alle Elemente (Items), die im Container vorhanden sind. Du kannst dem Konstruktor noch einen optionalen Parameter übergeben, um nur bestimmte Elemente (Items) zu erhalten:

string sqlQuery = "SELECT * FROM c WHERE c.Name = 'Anderson'";
CosmosDbDataProvider<Family> provider = new CosmosDbDataProvider<Family>(<YourEndpointUri>, <YourPrimaryKey>, <databaseId>, <containerId>, sqlQuery);
ListLabel LL = new ListLabel();
LL.DataSource = provider;
LL.Design();

Im Bericht werden dann nur die Datensätze angezeigt, bei denen die Eigenschaft „Name“ mit „Anderson“ übereinstimmt. Auf diese Weise kannst du die Datenmenge an deine Bedürfnisse anpassen.

So visualisierst du deine Daten aus Azure Cosmos Datenbanken mit dem List & Label Designer.

Empfohlene Artikel

Schreibe einen Kommentar