Entity framework 实体框架-多对多关系-添加id为的引用
我使用实体框架,两个对象之间有多对多关系 假设类问题和类标记,当我创建一个包含许多标记的新问题时,我在viewmodel中有一个选定标记的列表。我需要创建问题,以便将这些标记添加到问题中,但我不想重新加载所有标记 我的意思是: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
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。的可能副本