トラブルシューティングASP.NET MVCにエンティティを添付するときのプライマリキーエラーの重複エンティティの状態を
を使用してに更新すると、問題が頻繁に発生します。 調査により、認可またはデータの検索に責任を負う個別の機能が、状態の更新の前に同じエンティティ
を事前ロードすることがよくあることが明らかになりました。 このプリロードプロセスは、エンティティが分離される可能性があり、その後の操作は、フレームワークが複製を追加しようとしていると考えているため失敗します。
EntityState.Modified
ソリューションには、プレロード機能がロードされたエンティティの追跡を防ぐことが含まれます。 これは、エンティティフレームワーククエリでdb.Entry(entity).State = EntityState.Modified
メソッドを使用することで実現できます。
問題のある関数の次の例を考えてみましょう:Attach
この関数はエンティティをロードし、コンテキストによって追跡可能になります。 これを修正するには、機能を変更してAsNoTracking()
:
canUserAccessA
1 2 3 4 5 6 7 8 |
|
操作との競合を防ぎます。 AsNoTracking()
を使用して
1 2 3 4 5 6 7 8 |
|
以上が「プライマリキー値の重複のためにエンティティの添付が失敗する」ASP.NET MVCのエラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。