我有 3 个具有多对多关系的表
问题 -(QuestionId,问题)
标签 - (TagId, TagName)
QuestionTag - (QuestionId, TagId)
我有一个场景,用户提出问题,他们可以向其中添加相关标签。
以后如果他们需要为现有的任务添加一些新的标签(已经在数据库中),怎么做?我只需要将 questionId 和 TagId 添加到“QuestionTag”表中,而不需要添加新的问题或标签,因为它们已经添加到表中。怎么做?
我在链接Insert/Update Many to Many Entity Framework发现了一个类似的问题。我该怎么做? 它具有类似的场景,其中添加了新问题并映射了已经在数据库中的标签。
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”中删除任何问题的问题标签。
帮我解决这个问题。