質問: "some new text"; await (dbCtx.SaveChangesAsync(_token)); ``` この時点で、データベースから*PRIMARY KEY制約違反*エラーが発生しました`AId`の値は重複するため挿入できません。もちろん、IDは既にデータベースにあります。IDを使用して、そこからエンティティをロードしました。何らかの理由で、EFはUPDATEではなくINSERT文を生成しますが、理由はわかりません。 `dbCtx.Entry(b).State`をチェックすると、すでに`EntityState.Modified`設定されてい`EntityState.Modified` 。私は迷っています - 誰かが間違っていることを指摘できますか?以前はエンティティを更新することに問題はありませんでしたが、GUIDプライマリキー(通常は`long`プライマリキーを使用)でEFを使用していません。 私はEF 6と.NET Framework 4.7.1を使用しています。
回答: 提案していただきありがとうございます - これは私が引き起こしたマッピングの問題であることが判明しました。 私には`OnModelCreating()`の呼び出し、私はと呼ばれる`MapInheritedProperties()`以外の基本クラスから継承していなかったタイプの`object`これが問題を引き起こしているようだ-もちろんのを、)。基底クラスを共有する他のエンティティは、マッピング呼び出しで正常に動作しました。 私はまた、 `ToTable()`をエンティティクラスに対して直接呼び出し`ToTable()`これは、私が理解できない理由のためにテーブルのマッピングを壊しました。 `Map()`内でその呼び出しを移動すると、期待どおりに動作し始めました。 だから私はこれから出発した: ``` entity.ToTable("tablename"); ``` これに: ``` entity.Map(m => m.ToTable("tablename")); ``` この問題を解決するために。 うまくいけば、これは将来の読者にとって有益なことでしょう。