asp.Net 如何将数据保存到控制器中的结点 table

asp.Net How to save data to junction table in controller

如何从控制器将数据保存到结点 table?

public ActionResult Create(KreatorZamowienNabywca model)
{
      db.KreatoryZamowien.Add(model.KreatorZamowien);
      db.Nabywcy.Add(model.Nabywca);
      db.SaveChanges();
}

我的数据库模式:

KreatorZamowien(Id, NumerZamowienia)  -------------------------------|
                                                                     |
NabywcaKreatorzamowien (KreatorZamowien_Id, Nabywca_Nabywca_Id)------|
                                                                     |
Nabywca(Nabywca_Id, Nazwa) ------------------------------------------|

KreatorZamowien.cs

public class KreatorZamowien
    {
        public int Id { get; set; }
        public int NumerZamowienia { get; set; }
        public virtual ICollection<Nabywca> Nabywcy { get; set; }
    }

Nabywca.cs

 public class Nabywca
    {
        public int NabywcaId { get; set; }
        public string Nazwa { get; set; }
        public virtual ICollection<KreatorZamowien> KreatoryZamowien { get; set; }
    }

模型包含 2 个模型以在视图中显示它们: KreatoryZamowienNabywca.cs

 public class KreatorZamowienNabywca
    {
        public KreatorZamowien KreatorZamowien { get; set; }
        public Nabywca Nabywca { get; set; }
    }

只需交叉引用两个对象。

public class KreatorZamowien
{
    public int Id { get; set; }
    public int NumerZamowienia { get; set; }
    public virtual ICollection<Nabywca> Nabywcy { get; set; } = new Hashset<Nabywca>();
}

public class Nabywca
{
    public int NabywcaId { get; set; }
    public string Nazwa { get; set; }
    public virtual ICollection<KreatorZamowien> KreatoryZamowien { get; set; } = new Hashset<KreatorZamowien>();
}

public ActionResult Create(KreatorZamowienNabywca model)
{
    model.KreatorZamowien.Nabywcy.Add(model.Nabywca);
    model.Nabywca.KreatoryZamowien.Add(model.KreatorZamowien);

    db.KreatoryZamowien.Add(model.KreatorZamowien);
    db.Nabywcy.Add(model.Nabywca);
    db.SaveChanges();
}