删除状态错误中的EF AssociationSet

时间:2012-03-07 04:59:59

标签: c# .net entity-framework entity-framework-4

不确定这里发生了什么。我有一个非常简单的模型,用于WebUsers和Lessons的在线培训网站。我正在尝试审核用户查看特定课程的时间。我对EF很新,所以也许我做错了,但代码似乎很简单。

代码很简单:

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

1 个答案:

答案 0 :(得分:1)

从数据库检索审核并立即用新的替换引用有什么意义?看起来您的课程已经在数据库中关联了另一个UserAudit,在这种情况下,您还必须删除之前的UserAudit实例,否则您的数据库将处于不一致的状态,违反了您的参照完整性。