这是我创建的第一个真正的应用程序,所以请成为gentile。
数据库包含一个名为APN的表,主键为APNID,另一个表为BGP,主键为BGPID。名为APNBGP的连接表,其中两列充当组合密钥,由两个外键组成:APNID,BGPID。 model.edmx文件确实显示了APN和BGP表之间的多对多关联。
APN vtcApn = new APN();
BGP vtcBGP = new BGP();
vtcVlan.VlanID = Convert.ToInt32(ddVlans.SelectedValue);
vtcApn.APN_Name = apnName.Text;
vtcApn.PDP = PDP.Text;
vtcBGP.RemotePeer = vtcPriPeer.Text;
vtcBGP.RemoteAS = vtcPriAs.Text;
dbContext.APNs.AddObject(vtcApn);
dbContext.BGPs.AddObject(vtcBGP);
dbContext.SaveChanges();
当我运行应用程序时,它会将所有APN和BGP属性保存到数据库,但不会更新APNBGP联结表。据我所知,EF会负责更新所有受影响的表格。 提前谢谢!
答案 0 :(得分:0)
是。告诉我。确切地说,您告诉EF您的APN和BGP是否相关?你没有。
您通常会在每个上都有某种收集。例如,您的APN实体上可能有BGPs集合。然后你会做这样的事情:
vtcApn.BGPs.Add(vtcBGP);
然后您不必将其添加到dbContext.BGPs。
答案 1 :(得分:0)
使用Add()方法代替AddObject(),如下所述:
dbContext.APNs.Add(vtcApn);
dbContext.BGPs.Add(vtcBGP);
dbContext.SaveChanges();