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