我有两张这样的表:
在这些表之间有一个像这样的Junction表:
*appartiene_squadra*
field name (**primary key**)(*foreign key to first table*)
field name (**primary key**)(*foreign key to second table*)
现在,问题是模型只识别前两个表,我无法在appartiene_squadra中写入数据。 我如何在此处撰写数据?
答案 0 :(得分:1)
您确定Entity Framework为您创建联结表是正确的。
要输入数据,您不要“将数据添加到联结表”。您所做的是将数据添加到导航属性,它将由Entity Framework自动存储在联结表中。
using(var db = new MyDataContext())
{
Installatori myInstallatori = db.GetExistingInstallatori(); //Assume this gives you an existing entity
Squadra mySquadra = db.GetExistingSquadra(); //Assume this gives you an existing entity
//You can do it this way
myInstallatori.squadra.Add(mySquadra);
//or this way
mySquadra.installatori.Add(myInstallatori);
//And then you save it to the database
db.SaveChanges();
}
我已经展示了将A添加到B,将B添加到A的示例。请注意您应该同时执行其中一项(至少在您打算使用时) 保存到数据库,而不是简单地在内存中填充实体。
另外,要从数据库中删除一行:
mySquadra.installatori.Remove(myInstallatori);
db.SaveChanges();