我在更新edmx图中不存在的多对多表格时遇到问题。更新多对多表格。 MVC中不存在表格
QuestionGroups
PK - QuesitonGroupID
Questions
PK - QuestionID
此表不EDMX存在:我无法更新这个表
QuestionGroupQuestions
PK - QuestionGroupID
PK - QuestionID
Answers
PK - AnswerID
这个表我能够更新该表正确
QuestionAnswers
PK - QuestionID
PK - AnswerID
这里代码
public ActionResult Create(int questionGroupID, QuestionVM questionVM)
{
Mapper.CreateMap<Question, QuestionVM>();
Question question = Mapper.DynamicMap<Question>(questionVM);
if (question.Answers != null)
{
question.Answers = new List<Answer>();
foreach (var answer in questionVM.Answers)
{
var questionAnswerToAdd = db.Answers.Find(answer.AnswerID);
question.Answers.Add(questionAnswerToAdd);
}
}
db.Questions.Add(question);
db.SaveChanges();
var questionGroup = db.QuestionGroups.Find(questionGroupID);
questionGroup.Questions.Add(question);
db.QuestionGroups.Add(questionGroup);
上述代码正在工作。我不想更新QuestionGroup表。我只想更新QuestionGroupQuestions表。
db.Entry(questionGroup).State = EntityState.Unchanged;
db.SaveChanges();
return RedirectToAction("Index", "Question");
}
更新前已经有2个现有记录
QuestionGroupID, QuestionID
14,1
14,3
当添加一个新的问题,我得到这个错误信息
{“PRIMARY KEY约束的冲突‘PK_QuestionGroupQuestions’。不能插入在对象'dbo.QuestionGroupQuestions'中复制密钥,复制密钥值为(14,1)。\ r \ n声明已终止。“}
听起来就像你已经与那个PK一行;没有?你需要删除这些? – ChiefTwoPencils 2015-04-05 02:32:08