1
我有一個真正的EF問題v1。我有一個相當大的EDMX,可能映射了50個實體,但是這個實體讓我感到悲傷。實體框架執行一個插入,當它應該做一個更新
該實體具有映射到實際上是參考表的其他實體的映射,但出於某種原因,它試圖執行插入操作,而不是僅更新自身。
這裏是我的代碼片段:
using (var context = new someEntities()) {
var studentCourseJoin =
context.StudentCourseJoinSet.Where(o => o.Code == scjCode).First();
studentCourseJoin.EntryStatus = new EntryStatus { Code = viewModel.StudentDetails.EntryStatusCode };
studentCourseJoin.ParentalInHigherEducation = new ParentalInHigherEducation { Code = viewModel.StudentDetails.ParentalInHigherEducationCode };
studentCourseJoin.School = new School { Code = viewModel.StudentDetails.SchoolCode };
studentCourseJoin.Institution = new Institution { Code = viewModel.StudentDetails.InstitutionCode };
studentCourseJoin.LastSchoolEndYear = viewModel.StudentDetails.LastSchoolEndYear;
studentCourseJoin.LastInstitutionEndYear = viewModel.StudentDetails.LastInstitutionEndYear;
// Blows up here trying to do an insert on the studentCourseJoin.Institution.
// But if I removed this one, then it will blow up on another one.
context.SaveChanges(true);
}
如果任何人有任何想法,請,他們將有很大的幫助。
您好,感謝您的答覆,也似乎沒有是一個ChangeState方法? – 2010-08-04 10:57:19
是的,對不起,這是你正在使用的EFv1。嘗試使用entry.SetModified()來代替。 – Yakimych 2010-08-04 11:26:17
還沒有工作。 studentCourseJoin對象被設置爲已修改,但是我上面定義的關係被添加,我認爲這是正確的。 我已經檢查了數據庫和參考表中存在的值。想法? – 2010-08-04 11:32:50