2012-03-07 69 views
2

不確定這裏發生了什麼。我有一個非常簡單的WebUsers和Lessons在線培訓網站模型。我試圖在用戶查看特定課程時進行審覈。我對EF很新,所以也許我做錯了什麼,但代碼看起來很簡單。EF AssociationSet處於已刪除狀態錯誤

代碼很簡單:

var webUser = db.WebUsers.Single(x => x.Id =((ProfileCommon)ControllerContext.HttpContext.Profile).WebUserId); 
var lesson = db.Lessons.Single(x => x.Id == lessonId); 

UserAudit audit = new UserAudit(); 
audit.WebUser = webUser;    
audit.AuditDate = DateTime.Now; 
audit.Lesson = lesson; 

db.UserAudits.AddObject(audit); 
db.SaveChanges(); 

錯誤我越來越:

A relationship from the 'UserAuditLesson' AssociationSet is in the 'Deleted' state. Given multiplicity constraints, a corresponding 'UserAudit' must also in the 'Deleted' state. 

下面是實體模型: (我不能發表圖片作爲新用戶...但下面是鏈接) http://imgur.com/U6lUg.png

+0

你能解決這個問題嗎? – 2012-06-28 22:38:47

+0

我有類似的問題。任何解決方案 – pjacko 2012-12-28 21:42:52

+0

如果有人在使用db.Parent.Children.Remove(child)刪除對象時出現問題 - 請參閱db.DeleteObject(child)。 – 2013-07-09 00:48:29

回答

1

從數據庫中檢索審計並立即用新的引用替換引用有什麼意義?看起來您的課程已經在數據庫中關聯了另一個UserAudit,在這種情況下,您還必須刪除之前的UserAudit實例,否則您的數據庫將處於違反參照完整性的不一致狀態。

+0

沒有一點......這是我的複製粘貼中的一個錯誤...我試着最小化我的代碼,專注於確切的問題,忘記帶出來。查看更新的代碼。 – 2012-03-07 18:50:51

相關問題