choose mysql
local with mamp or docker
---
install
nuget
Pomelo.EntityFrameworkCore.MySql
---
in appsettings.json:
 "ConnectionStrings": {
    "DefaultConnection": "server=localhost;port=3306;database=dotnetmysqltest;uid=username;password=password",
  }
setup entities
recipe.class
using System;
using System.Collections.Generic;
namespace testlocalmysql.Entities
{
    public class Recipe
    {
       
        public int RecipeId { get; set; }
        public string Name { get; set; }
       // public TimeSpan TimeToCook { get; set; } // gave error time(6) ???
// works as double
        public double TimeToCook { get; set; }
        public bool IsDeleted { get; set; }
        public string Method { get; set; }
        public ICollection<Ingredient> Ingredients { get; set; }
    }
}
ingredient.class
using System;
namespace testlocalmysql.Entities
{
    public class Ingredient
    {
        public int IngredientId { get; set; }
        public int RecipeId { get; set; }
        public string Name { get; set; }
        public decimal Quantity { get; set; }
        public string Unit { get; set; }
    }
}
register dbcontext
using System;
using Microsoft.EntityFrameworkCore;
using testlocalmysql.Entities;
namespace testlocalmysql.Db
{
    public class AppDbContext: DbContext
    {
        public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
        {
        
        }
            
        public DbSet<Recipe> Recipes { get; set; }
    }
}
add to startup.cs
            services.AddDbContext<AppDbContext>(options =>
            options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));
use ef
test if works
 dotnet ef --help
apply first migration
dotnet ef migrations add InitialSchema
migration folder is created with 3 new files
finish it with
dotnet ef database update