不确定这里发生了什么。我有一个非常简单的模型,用于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
答案 0 :(得分:1)
从数据库检索审核并立即用新的替换引用有什么意义?看起来您的课程已经在数据库中关联了另一个UserAudit
,在这种情况下,您还必须删除之前的UserAudit
实例,否则您的数据库将处于不一致的状态,违反了您的参照完整性。