Поскольку он работает только тогда, когда все сущности используют автоматически сгенерированные PK, а также производит ненужные обновления связанных сущностей, я не рекомендую это делать.

ты «Мой магазин» и «Продукт» имеют отношение один ко многим, см. Мои модели

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");
    }
}

Магазин на странице создания - это выпадающий список, когда я публикую новый продукт в обработчике, я вижу product.ShopID - это идентификатор, который существует в таблице Shop, и product.Shop.ID совпадает с product.ShopID. , Но когда я вызываю saveChangesAsync (), он выдает исключение:

MySqlException: невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется (shopdb.product, ОГРАНИЧЕНИЕFK_product_shop_ShopID ВНЕШНИЙ КЛЮЧ (ShopID) РЕКОМЕНДАЦИИshop (ID) НА УДАЛЕННОМ КАСКАДЕ)

Я пытался установить product.Shop в null перед вызовом метода saveChangesAsync, но все равно не работает, кто-нибудь может помочь?

Приложение Razor Pages ASP.NET Core 2.0, Nuget: Pomelo.EntityFrameworkCore.MySql v2.0.1

Ответы на вопрос(2)

Ваш ответ на вопрос