Entity framework 实体框架-多对多关系-添加id为的引用

Entity framework 实体框架-多对多关系-添加id为的引用,entity-framework,asp.net-mvc-3,model-view-controller,ef-code-first,code-first,Entity Framework,Asp.net Mvc 3,Model View Controller,Ef Code First,Code First,我使用实体框架,两个对象之间有多对多关系 假设类问题和类标记,当我创建一个包含许多标记的新问题时,我在viewmodel中有一个选定标记的列表。我需要创建问题,以便将这些标记添加到问题中,但我不想重新加载所有标记 我的意思是: foreach(var id in tagUIds) {Tag tag = gettag(id); question.tags.add(tag); } 不是很有效,有没有一种方法可以避免只通过标签id加载标签和添加引用 感谢您可以创建中间实体TagToQuestio

我使用实体框架,两个对象之间有多对多关系

假设类问题和类标记,当我创建一个包含许多标记的新问题时,我在viewmodel中有一个选定标记的列表。我需要创建问题,以便将这些标记添加到问题中,但我不想重新加载所有标记

我的意思是:

foreach(var id in tagUIds)
 {Tag tag = gettag(id);
 question.tags.add(tag); }
不是很有效,有没有一种方法可以避免只通过标签id加载标签和添加引用


感谢

您可以创建中间实体TagToQuestionLink,将其映射到多对多表,并使用该实体的集合而不是标记集合:

public class TagToQuestionLink
{    
    TagId{get;set;}
    QuestionId{get;set;}
}
然后您可以使用:

foreach(var id in tagUIds)
{
   var tagLink = new TagToQuestionLink{QuestionId = question.Id, TagId = id};
   question.tags.add(tagLink); 
}
不要忘记,在这个解决方案中,question.tags应该是ICollection。

的可能副本