2012-03-07 10 views
2

ここで何が起こっているのか分かりません。私はWebUserとレッスンでオンライントレーニングサイトのための非常にシンプルなモデルを持っています。私はユーザーが特定のレッスンを見たときに監査しようとしています。私はEFの新機能ですから、間違ったことをしているかもしれませんが、コードは簡単です。EF AssociationSetが削除された状態のエラー

コードは非常に簡単です:以下

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

は、Entityモデルです:: (私はとして画像を投稿することができない私は取得しています

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(); 

エラー新しいユーザー...しかし、以下はリンクです) http://imgur.com/U6lUg.png

+0

この問題を解決できましたか? –

+0

私も同様の問題があります。任意のソリューションですか? – pjacko

+0

db.Parent.Children.Remove(子)を使用してオブジェクトを削除しているときに問題が発生した場合は、db.DeleteObject(子)に移動します。 –

答えて

1

データベースから監査を取得し、すぐに参照を新しいものに置き換える点は何ですか?あなたのレッスンですでにもう一つのUserAuditがデータベースに関連付けられているように見えます。この場合、前のUserAuditインスタンスも削除する必要があります。そうしないと、データベースが参照整合性に違反する不整合な状態になります。

+0

私のコピーの貼り付けに誤りがありました...私は正確な問題に焦点を当てるように自分のコードを最小化しようとしましたが、それを忘れてしまいました。更新されたコードを参照してください。 –

関連する問題