質問: 私は`Add()`を使用していて、子の`Add`時`Add`親エンティティがデータベースに複製されていたという問題に遭遇しました。 `Attach()`を使用`Attach()`これは解決しましたが、やみくもにつまずくことよりも理由を知りたいのです。
回答: `Attach`を使用`Attach`と、エンティティがすでにデータベース内にあることがコンテキストに伝えられ、 `SaveChanges`はアタッチされたエンティティには影響を与えません。一方、 `Add`は、コンテキスト内のエンティティの状態(すでに存在する場合)を`Added`に変更します。これは、 `SaveChanges`を呼び出すときに**常に**エンティティがデータベースに挿入されることを意味します。 それが違いです。