質問: new Course(student, teacher); repo.Add(c); repo.Save(); ``` 1. 同じIDの学校を再作成できないというエラーが表示されます 2. 同じIDの生徒を再作成できないというエラーが表示されます 基本的には、データベース( `Student` & `Teacher` )からレコードを取得し、それらを使用して新しいリレーショナルエンティティ( `Course` )を作成しようとしています。 > {System.Data.SqlClient.SqlException:PRIMARY KEY制約 'PK_Schools'の違反。オブジェクト 'dbo.Schools'に重複キーを挿入できません。重複キーの値は(78434ef7-20db-42c8-448e-08d401d04461)です。ステートメントは終了されました。 > > これはEF7の問題だと思われます...まだ十分に成熟していないのですか?それが気に入らないからです!
回答: CodeNotFoundに多くのおかげでトロフィーに値する人がいます... > 同じDbContextを使用していることを確認する > > だから`AddTransient<,>`を`AddSingleton<,>`に変更し`AddTransient<,>` `AddSingleton<,>` 、私のサービスの設定とちょっとプレスト!できます! この便利なスニペットのD Stanleyにも感謝します。 > DIを使用していない人にとって公平であるためには、コースを保存する前に、生徒と教師のオブジェクトをコンテキストに添付することもできます。 Attachは、オブジェクトがデータベースにすでに存在しているため、再度追加しないことをEFに指示します。 > > *あなたがこれを見つけたら、あなたの前に行った人々のために考えを惜しまない!*