質問: new Challenge(id, challenge.Name, challenge.Phase, challenge.Type, challenge.Star, challenge.Gear, challenge.Level, challenge.Reward); } } ``` これは、エラーが発生するチャレンジ以外の他のすべてのエンティティで機能します。誰でも私が間違っていることを理解するのを助けてください。
回答: 問題は、同じ行を2回(同じGuid = Id)をdbo.Challengeテーブルに挿入しようとしていることであるという事実は変わりません。 1. これは、デバッグの問題などが原因である可能性があります。 `DELETE FROM [Challenge] WHERE Id = '15ae8798-8567-457b-812a-5820cf7843e5'`を使用してテーブルから行を削除し、アプリを再度実行してください。 2. これで問題が解決しない場合は、エンティティ管理に問題があり、ID処理を修正する必要があります。コンテキストなどを保存する前に、IDチェックを実装します。 もう1つの問題は、クラスが適切に定義されておらず、EFが関係を認識しないことです。あなたが話している関係は親子ではなく、1対多、多対多、多対1、またはなしです。 DB関係 各POCOには、他のクラスのインスタンスとインスタンスが含まれている必要があります。したがって、関係を定義します。たとえば、GuildMemberChallengeにIEnumerableとチャレンジタイプのプロパティが含まれている場合。 上記のいずれも解決策ではない場合、それを理解するためにさらにコード(クラス、リポジトリ)が必要です。 更新:新しいGuildMemberChallengeを追加するとき、これはあなたが今やろうとしていることだと思います。既存のエンティティにチャレンジプロパティを設定する必要があります。存在しない場合は作成できませんが、現時点ではデータベースに既に存在するチャレンジを作成しようとしています。