The 10-Day .Net Aspire Challenge – Day 2: Add MSSQL Component

Step-by-step guide on how to use the.Net Aspire MSSQL component in Visual Studio. 10 Day. net Aspire Challenge: Learn how to create a starter project using.Net aspire with MSSql EF Core component. The solution structure is divided into the following projects DotnetAspireChallenge.ApiService, Dotnet aspirechallenge.web and Dotnetaspirechallenges.service.


This content originally appeared on HackerNoon and was authored by Sukhpinder Singh

\ Step-by-step guide on how to use the .Net Aspire MSSQL component in Visual Studio.

Introduction

.Net Aspire framework is used to develop cloud and production-ready distributed applications. It consists of components to handle cloud-native concerns, such as Redis, Postgres, etc.

Prerequisites

Objectives

Learn how to create a starter project using .Net Aspire with MSSQL EF Core component.

\ Github Sample: The solution structure is divided into the following projects

  • DotnetAspireChallenge.ApiService
  • DotnetAspireChallenge.AppHost
  • DotnetAspireChallenge.ServiceDefaults
  • DotnetAspireChallenge.Web

Getting Started

Step 1: Install the following NuGet package

Install the following Nuget package into the subsequent project “DotnetAspireChallenge.AppHost

dotnet add package Aspire.Hosting.SqlServer

In the above project, register a SQL server database and costume the SQL connection using following code.

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("sqldata");

var apiService = builder.AddProject<Projects.DotnetAspireChallenge_ApiService>("apiservice")
    .WithReference(sql);

Step 2: Install another NuGet package

Install the following Nuget package into the subsequent project “DotnetAspireChallenge.ApiService

dotnet add package Aspire.Microsoft.EntityFrameworkCore.SqlServer

then register the context into the Program.cs file as follows

builder.AddSqlServerDbContext<MssqlDbContext>("sqldata");

Step 3: Create a “Customer” class

public class Customer
{
    public int Id { get; set; }

    [Required]
    public string Title { get; set; } = string.Empty;

    [Required]
    public string Description { get; set; } = string.Empty;
}

Step 4: Create an extension class

Create an extension class and register a minimal API get method to demonstrate the MSSQL context usage in the API Service

public static class AspireMssqlExtension
{
    public static void MapMssqlAspireEndpoint(this WebApplication app)
    {
        app.MapGet("/mssql", async (MssqlDbContext mssqlDbContext) =>
        {
            await mssqlDbContext.Customers.AddAsync(new Customer()
            {
                Title = "test@gmail.com",
                Description = "sukh"
            });
            int rows = await mssqlDbContext.SaveChangesAsync();
            if (rows > 0)
            {
                return await mssqlDbContext.Customers.FirstOrDefaultAsync();
            }
            else
            {
                return null;
            }
        });
    }
}

internal class MssqlDbContext(DbContextOptions options) : DbContext(options)
{
    public DbSet<Customer> Customers => Set<Customer>();
}

and finally, register in the Program.cs file

app.MapMssqlAspireEndpoint();

Step 5: Hit the GET endpoint

Finally, navigate to the GET URL shown below in your browser. It will insert the specified customer into the MSSQL database, retrieve the most recently inserted row, and display it as a response.

\

\ Add additional connection string properties using the JSON syntax

{
  "Aspire": {
    "Microsoft": {
      "EntityFrameworkCore": {
          "SqlServer": {
            "ConnectionString": "YOUR_CONNECTIONSTRING",
            "DbContextPooling": true,
            "DisableHealthChecks": true,
            "DisableTracing": true,
            "DisableMetrics": false,
          "AnotherDbContext": {
            "ConnectionString": "AnotherDbContext_CONNECTIONSTRING",
            "DisableTracing": false
          }
        }
      }
    }
  }
}

\ Congratulations..!! You’ve successfully integrated the MSSQL component into the .Net Aspire project.

Github Project

GitHub — ssukhpinder/DotnetAspireChallenge: 10 Day .Net Aspire Challenge

\


This content originally appeared on HackerNoon and was authored by Sukhpinder Singh


Print Share Comment Cite Upload Translate Updates
APA

Sukhpinder Singh | Sciencx (2024-08-29T19:17:01+00:00) The 10-Day .Net Aspire Challenge – Day 2: Add MSSQL Component. Retrieved from https://www.scien.cx/2024/08/29/the-10-day-net-aspire-challenge-day-2-add-mssql-component/

MLA
" » The 10-Day .Net Aspire Challenge – Day 2: Add MSSQL Component." Sukhpinder Singh | Sciencx - Thursday August 29, 2024, https://www.scien.cx/2024/08/29/the-10-day-net-aspire-challenge-day-2-add-mssql-component/
HARVARD
Sukhpinder Singh | Sciencx Thursday August 29, 2024 » The 10-Day .Net Aspire Challenge – Day 2: Add MSSQL Component., viewed ,<https://www.scien.cx/2024/08/29/the-10-day-net-aspire-challenge-day-2-add-mssql-component/>
VANCOUVER
Sukhpinder Singh | Sciencx - » The 10-Day .Net Aspire Challenge – Day 2: Add MSSQL Component. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/08/29/the-10-day-net-aspire-challenge-day-2-add-mssql-component/
CHICAGO
" » The 10-Day .Net Aspire Challenge – Day 2: Add MSSQL Component." Sukhpinder Singh | Sciencx - Accessed . https://www.scien.cx/2024/08/29/the-10-day-net-aspire-challenge-day-2-add-mssql-component/
IEEE
" » The 10-Day .Net Aspire Challenge – Day 2: Add MSSQL Component." Sukhpinder Singh | Sciencx [Online]. Available: https://www.scien.cx/2024/08/29/the-10-day-net-aspire-challenge-day-2-add-mssql-component/. [Accessed: ]
rf:citation
» The 10-Day .Net Aspire Challenge – Day 2: Add MSSQL Component | Sukhpinder Singh | Sciencx | https://www.scien.cx/2024/08/29/the-10-day-net-aspire-challenge-day-2-add-mssql-component/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.