How to connect to MariaDB database

Asked 1 year 9 months 15 days 23 hours 47 minutes ago, Viewed 1672 times

To call an asynchronous function that writes a counter increment by 1 in the MariaDB database in .NET Core, you need to follow a few steps:

Install the "Pomelo.EntityFrameworkCore.MySql" NuGet package using the NuGet package manager.

PM> NuGet\Install-Package Pomelo.EntityFrameworkCore.MySql -Version 7.0.0

Create a class that represents the data model for the table where you want to store the counter. For example:

ModelCunter.cs
public class Counter
{
     public int Id { get; set; }
     public int Value { get; set; }
}

Create a class that inherits from DbContext to represent the database context. For example:

DbContext.cs
public class MyDbContext : DbContext
{
     public MyDbContext(DbContextOptions options) : base(options)
     {
     }

     public DbSet Counters { get; set; }
}

In the appsettings.json file, add a section with database connection settings. For example:

appsettings.json
{
   "ConnectionStrings": {
     "MyDbConnection": "server=localhost;port=3306;database=mydb;user=root;password=mypassword"
   }
}

In the Startup.cs class, register the database context and set up the database connection. For example:

Startup.cs
public void ConfigureServices(IServiceCollection services)
{
     services.AddDbContext(options =>
         options.UseMySql(Configuration.GetConnectionString("MyDbConnection"), new MySqlServerVersion(new Version())));
}

Then you can create an async function that increments the counter value by 1 and saves it to the database. For example:

CounterController.cs

private readonly MyDbContext _context;

public HomeController( MyDbContext context)
{          
     _context = context;
}

public async Task IncreaseCounterAsync()
{   
     var counter = await _context.Counters.FirstOrDefaultAsync();
     if (counter == null)
     {
         counter = new Counter { Value = 1 };
          _context.Counters.Add(counter);
     }
     else
     {
         counter.Value++;
     }
     await _context.SaveChangesAsync();     
}

Now you can call an async function from anywhere in your code. call these functions from within another asynchronous function. To call an asynchronous function that writes a counter increment by 1 to the MariaDB database from another asynchronous function, you can simply call it with the "await" keyword. For example:

CounterController.cs
public async Task MyOtherAsyncFunction()
{
     // ...
     await IncreaseCounterAsync();
     // ...
}

In this case, after calling the function "IncreaseCounterAsync", the code in the function "MyOtherAsyncFunction" will wait for this asynchronous function to finish before proceeding with further code execution.


<<How To Install MariaDB on Ubuntu>>