只用主键写入多对多关系表

时间:2017-06-26 10:42:36

标签: c# entity-framework

我有两张这样的表:

enter image description here

在这些表之间有一个像这样的Junction表:

*appartiene_squadra*
field name (**primary key**)(*foreign key to first table*)
field name (**primary key**)(*foreign key to second table*)

现在,问题是模型只识别前两个表,我无法在appartiene_squadra中写入数据。 我如何在此处撰写数据?

1 个答案:

答案 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();