あなたの編集では、「複数の追加されたエンティティが同じ主キーを持っている可能性がある」と述べています。エラー。ここで行っていることの詳細をすべて知らなくても、エンティティとの関係を作成しているように聞こえます。エンティティには、同じIDを持つコンテキストに2つあります。これらはおそらくまだ保存されていない新しいエンティティであり、データベースから自動的に生成されたIDを取得します。関係がIDに基づいている場合、Entity Frameworkは、関係が実際に指している新しいエンティティを判別できないため、あいまいさがあります。どちらも、関係が指しているIDを持っています。
2つの潜在的な修正があります。
-
エンティティがコンテキストで作成されるときに、エンティティの一時的な一意の識別子を生成します。 Entity Frameworkは、エンティティが保存されるときにこれを破棄しますが、その時点までは、これを使用して1つの新しいエンティティを他のエンティティと区別することができます。私は過去にこの目的のために負の整数を使用しました。
-
IDを使用して関係を作成するのではなく、エンティティ参照を使用して関係を作成してください。 Entity Frameworkにエンティティへの直接参照がある場合、一意でない識別子に基づいてエンティティを識別するプロセスを実行する必要はなく、この問題は発生しないはずです。