当我运行下面的代码,我得到实体框架失败,因为相同类型的另一个实体已具有相同的主键值。外键
try {
var questionRepo = new QuestionRepository(db);
var question = new Question();
question.QuestionText = text;
question.QuestionCategory = SelectedQuestionCategory;
db.QuestionCategory.Attach(SelectedQuestionCategory);
//Tried adding
//db.Entry(question).State = System.Data.Entity.EntityState.Added;
questionRepo.Add(question);
db.SaveChanges();
} catch (Exception ex) {
Debug.WriteLine(ex.Message);
return;
}
没有错误,当我以前没有使用过的QuestionCategory
,但我得到一个错误,如果我有。
该错误仅在我已经在我的数据库中选择SelectedQuestionCategory
时有问题。我再次检查了数据库,Question
的主键位于id
列,而不是QuestionCategory
。
我得到的错误是:
附加型“QuestionCategory”的实体失败 因为同类型的另一实体已经具有相同的主 键值。
为什么它在等外键上失败,而外键不是组合主键或主键?
SelectedQuestionCategory是通过下拉菜单{binding} wpf查看的值。 –
研究如何创建这些实例,并确保在您从数据库中提取这些实例时,您没有使用.AsNotTracking()来跟踪它们。 – richardsonmarkj