实体框架:创建并插入多对多关系

我是实体框架的新手,正在寻找创建实体和相关的多对多关联实体之间的关系并将它们插入到一个操作中的方向。

我的EDMX中的相关实体:

参加者
ID
名称

ParticipantCustomField
ParticipantID
CustomFieldID

的CustomField
ID
名称

我需要插入一个Participant实体和许多ParticipantCustomField实体。 在插入时,相关的CustomField实体将已经在数据库中。

我有一个存储库创建方法,它接受一个Participant和一个ParticipantCustomField对象的集合:

public Participant CreateParticipant(Participant participant, List<ParticipantCustomField> customFields)
{
    // need to establish relationship here

    entities.AddToParticipant(participant);
    entities.SaveChanges();
    return participant;
}

我尝试了几种方法,但在插入前无法弄清楚如何正确地将ParticipantCustomField对象集合与新Participant联。 我知道CustomFieldID外键被设置这种方法之外,但ParticipantID直到外键不能设置Participant被插入。

我猜是因为这是实体框架,我不应该把注意力集中在“外键”上,我认为这只是因为我的关联表有第三列,而是关系。

谢谢你的帮助!


您无需设置ParticipantCustomField.ParticipantId 。 该框架将为你做到这一点。 相反,你会这样做:

foreach (var cf in customField)
{
    participant.CustomFields.Add(cf);
}
entities.AddToParticipant(participant);
entities.SaveChanges();
return participant;

我在这里对你的映射做了一些假设,但是这应该给你一个总体思路。

链接地址: http://www.djcxy.com/p/37469.html

上一篇: Entity Framework: Creating and inserting many to many relationships

下一篇: Database for multilanguage design. double unique key referece to foreign key