ef núcleo excepción de lanzamiento de relación uno a muchos No se puede agregar o actualizar una fila secundaria

Mi tienda y las entidades de productos tienen una relación de uno a muchos, consulte mis modelos

public class Product
{
   public int ID { get; set; }
   public string Name { get; set; }
   public string Tag { get; set; }
   public string Brand { get; set; }
   public string Place { get; set; }

   public int ShopID { get; set; }
   public Shop Shop { get; set; }
}

public class Shop
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Comment { get; set; }
    public string Number { get; set; }

    public ICollection<Product> Products { get; set; }
}



 public class ShopContext : DbContext
    {
        public ShopContext(DbContextOptions<ShopContext> options) : base(options)
        {
        }

        public DbSet<Shop> Shops { get; set; }
        public DbSet<Product> Products { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Shop>().ToTable("shop");
            modelBuilder.Entity<Product>().ToTable("product");
        }

    }

public class CreateModel : PageModel
{
    private readonly ShopContext _context;

    public CreateModel(ShopContext context)
    {
        _context = context;
    }

    public IActionResult OnGet()
    {
        ViewData["Shop"] = new SelectList(_context.Shops, "ID", "Name");

        return Page();
    }

    [BindProperty]
    public Product Product { get; set; }

    public async Task<IActionResult> OnPostAsync()
    {
        if (!ModelState.IsValid)
        {
            return Page();
        }

        _context.Products.Add(Product);
        await _context.SaveChangesAsync();

        return RedirectToPage("./Index");
    }
}

La tienda en la página de creación es una lista desplegable, cuando publico el nuevo producto en el controlador, puedo ver el producto. ShopID es un ID que existe en la tabla Tienda, y el producto. Shop.ID es igual que el producto. ShopID. Pero cuando llamo saveChangesAsync (), arroja una excepción:

MySqlException: no se puede agregar o actualizar una fila secundaria: falla una restricción de clave externa shopdb.product, RESTRICCIÓNFK_product_shop_ShopID CLAVE EXTERNA ShopID) REFERENCIASshop (ID) EN ELIMINAR CASCADA)

Traté de establecer product.Shop en nulo antes de llamar al método saveChangesAsync, pero aún no funciona, ¿alguien puede ayudarme?

ASP.NET Core 2.0 Razor Pages Application, Nuget: Pomelo.EntityFrameworkCore.MySql v2.0.1

Respuestas a la pregunta(2)

Su respuesta a la pregunta