【问题标题】:asp.Net How to save data to junction table in controllerasp.Net 如何将数据保存到控制器中的连接表
【发布时间】:2018-06-16 14:42:50
【问题描述】:

如何将数据从控制器保存到联结表?

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

【问题讨论】:

    标签: c# asp.net entity-framework entity-relationship junction-table


    【解决方案1】:

    只需交叉引用两个对象。

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

    【讨论】:

      猜你喜欢
      • 2023-01-24
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      相关资源
      最近更新 更多