EF AssociationSet в ошибке удаленного состояния - PullRequest
2 голосов
/ 07 марта 2012

Не уверен, что здесь происходит.У меня есть довольно простая модель для сайта онлайн-обучения с веб-пользователями и уроками.Я пытаюсь провести аудит, когда пользователи просматривают определенный урок.Я довольно новичок в 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 Ответ

1 голос
/ 07 марта 2012

Какой смысл извлекать аудит из базы данных и немедленно заменять ссылку на новую? Похоже, у вашего урока уже есть еще один UserAudit, связанный с базой данных, и в этом случае вы также должны удалить этот предыдущий экземпляр UserAudit, иначе ваша база данных будет в несовместимом состоянии, нарушая вашу ссылочную целостность.

...