Поиск  
Always will be ready notify the world about expectations as easy as possible: job change page
сегодня

Working with Azure Cosmos DB in .NET Core: A Step-by-Step Guide

Working with Azure Cosmos DB in .NET Core: A Step-by-Step Guide
Автор:
Источник:
Просмотров:
46

Azure Cosmos DB is a globally distributed, multi-model database service provided by Microsoft Azure. It supports multiple data models, including document, key-value, graph, and column-family data models. In this article, we’ll explore how to add and retrieve data from Azure Cosmos DB using .NET Core, focusing on the document model.

Prerequisites

Before you begin, ensure you have the following:

  1. An Azure account with access to Cosmos DB.
  2. A Cosmos DB account and a database with a container.

Setting up the .NET Core project

1. Create a new .NET Core Console App:

Open a terminal and run the following commands:

dotnet new console -n CosmosDbExample
cd CosmosDbExamplebash

2. Install Azure Cosmos DB SDK:

Install the Azure Cosmos DB SDK for .NET by running the following command:

dotnet add package Microsoft.Azure.Cosmos

Writing code to add and retrieve data

Now, let’s write code to interact with Azure Cosmos DB.

Add data

using Microsoft.Azure.Cosmos;
using System;
using System.Threading.Tasks;

class Program
{
    private const string EndpointUrl = "your_cosmos_db_endpoint";
    private const string PrimaryKey = "your_cosmos_db_primary_key";
    private const string DatabaseId = "YourDatabaseId";
    private const string ContainerId = "YourContainerId";

    static async Task Main(string[] args)
    {
        CosmosClient cosmosClient = new CosmosClient(EndpointUrl, PrimaryKey);
        Database database = await cosmosClient.CreateDatabaseIfNotExistsAsync(DatabaseId);
        Container container = await database.CreateContainerIfNotExistsAsync(ContainerId, "/PartitionKey");

        // Add data
        dynamic item = new
        {
            Id = Guid.NewGuid().ToString(),
            Name = "John Snow",
            Age = 30,
            PartitionKey = "PartitionKeyValue"
        };

        ItemResponse<dynamic> response = await container.CreateItemAsync(item, new PartitionKey(item.PartitionKey));
        Console.WriteLine($"Created item in database with id: {response.Resource.Id}");
    }
}

Replace `”your_cosmos_db_endpoint”`, `”your_cosmos_db_primary_key”`, `”YourDatabaseId”`, and `”YourContainerId”` with your Cosmos DB account details.

Retrieve data

using Microsoft.Azure.Cosmos;
using System;
using System.Linq;
using System.Threading.Tasks;

class Program
{
    private const string EndpointUrl = "your_cosmos_db_endpoint";
    private const string PrimaryKey = "your_cosmos_db_primary_key";
    private const string DatabaseId = "YourDatabaseId";
    private const string ContainerId = "YourContainerId";

    static async Task Main(string[] args)
    {
        CosmosClient cosmosClient = new CosmosClient(EndpointUrl, PrimaryKey);
        Database database = cosmosClient.GetDatabase(DatabaseId);
        Container container = database.GetContainer(ContainerId);

        // Retrieve data
        var query = new QueryDefinition("SELECT * FROM c WHERE c.Age > @age")
            .WithParameter("@age", 25);

        var iterator = container.GetItemQueryIterator<dynamic>(query);

        while (iterator.HasMoreResults)
        {
            FeedResponse<dynamic> response = await iterator.ReadNextAsync();
            foreach (var item in response)
            {
                Console.WriteLine($"Id: {item.Id}, Name: {item.Name}, Age: {item.Age}");
            }
        }
    }
}

Replace the same placeholders as in the previous example.

Final thoughts

In this article, we’ve walked through the process of adding and retrieving data from Azure Cosmos DB using .NET Core. Azure Cosmos DB provides a flexible and scalable solution for managing diverse data types, and the .NET SDK simplifies the development process.

Remember to handle sensitive information, such as connection strings and keys, securely in a production environment. Additionally, consider error handling and logging to make your application more robust.

By following these steps, you should be able to integrate Azure Cosmos DB into your .NET Core applications, allowing you to store and retrieve data efficiently.

Похожее
Mar 9, 2023
Author: Vithal Wadje
ASP.NET Core Blazor Server is a platform for developing modern and dynamic web applications. With Blazor Server, you can write code in C# and create rich user interfaces using HTML and CSS, all while taking advantage of server-side rendering and...
Jul 16, 2020
Author: Kannan Eswar
In this blog, I am going to provide a walkthrough on developing REST APIs using ASP.NET Core 3.1, connecting with existing databases using Entity Framework, creating a JWT token, and securing APIs. I am going to develop a sample application...
Jan 18, 2023
Author: Erick Gallani
Did you ever face a situation where you have a search UI, like a front-end application, that has a data table and you need to support a complex query construction that can contain Free Text search, Sorting of multiple columns,...
Jun 5, 2023
Author: Juan Alberto España Garcia
In this section, we’ll explore the world of unit testing in C# and .NET, learn what unit testing is, why it’s important, and the landscape of testing frameworks and tools available to developers. What is Unit Testing? Unit testing is...
Написать сообщение
Почта
Имя
*Сообщение


© 1999–2024 WebDynamics
1980–... Sergey Drozdov
Area of interests: .NET Framework | .NET Core | C# | ASP.NET | Windows Forms | WPF | HTML5 | CSS3 | jQuery | AJAX | Angular | React | MS SQL Server | Transact-SQL | ADO.NET | Entity Framework | IIS | OOP | OOA | OOD | WCF | WPF | MSMQ | MVC | MVP | MVVM | Design Patterns | Enterprise Architecture | Scrum | Kanban