我有3代表许多一对多relationaship如何只插入新的关系和删除现有关系 - 多对多的实体框架4.0
问题 - (QuestionId,问题)
标签 - (标签识别,标签名)
QuestionTag - (QuestionId,标签识别)
我有一种情况,用户提出问题,他们可以将其添加相关的标签。
后来,如果他们需要为现有的任务添加一些新的标记(这已经在数据库中),那么该怎么做? 我只需要将questionId和TagId添加到“QuestionTag”表中,而无需添加新的问题或标记,因为它们已添加到表中。怎么做?
我在链接Insert/Update Many to Many Entity Framework . How do I do it? 处发现了一个类似的问题,它具有类似的情况,其中添加了新问题并映射了已经在数据库中的标签。
using (var context = new MyContext())
{
var question= new Question { Question = "I have a question" };
Tag tag1 = context.Tags.FirstOrDefault(s => s.Name == "C#");
Tag tag2 = context.Tags.FirstOrDefault(s => s.Name == ".net");
question.Tags.Add(tag1);
question.Tags.Add(tag2);
context.AddToQuestiones(question);
context.SaveChanges();
}
因此,为了与我的情况下工作,我修改了上面的代码为
var question= context.Question.FirstOrDefault(q => q.QuestionId == 1);
,但我得到了以下异常。
“这两个对象之间的关系无法定义,因为它们被连接到不同的ObjectContext对象上。” “
此外,如何从“QuestionTag”的问题标签中删除任何问题,如果错误地添加了不匹配标签名称。
帮我解决这个问题。
谢谢!有效!!我为Ques和Tags使用了单独的上下文。 – 2012-04-13 18:00:07