ホームページ > バックエンド開発 > C++ > asp.net mvc編集アクションで「型モデル名」のエンティティを添付する」のなぜ「failed」が発生するのか、どのように解決できるのですか?

asp.net mvc編集アクションで「型モデル名」のエンティティを添付する」のなぜ「failed」が発生するのか、どのように解決できるのですか?

Mary-Kate Olsen
リリース: 2025-01-30 08:12:22
オリジナル
567 人が閲覧しました

Why Does

トラブルシューティング「タイプ「モデル」のエンティティを添付する」エラーのasp.net mvc編集

asp.net MVCの「モデル名」タイプのエンティティを添付する」エラーが通常発生します。 このエラーメッセージは通常、主要なキーの不一致を示し、エンティティが既存のレコードの代わりに新しいものとして扱われることを示唆しています。 ソリューションには、エンティティフレームワーク内でエンティティの状態を正しく管理することが含まれます。

この問題は、編集中の編集中にしばしば表面化します。 エンティティは最初に取得され、「変更された」とマークされますが、その後のメソッド呼び出し(州の更新の前)は、同じエンティティを誤って削除して剥離する可能性があります。

これを解決するための鍵は、国家を変更する前に意図しないエンティティの追跡を妨げることです。 Entity Frameworkの

メソッドは、ソリューションを提供します

ここで問題を修正する方法を示し、変更されたAsNoTracking()メソッド内で

の使用を実証します:

AsNoTracking() canUserAccessA

を組み込むことにより、
private bool canUserAccessA(int aID)
{
    int userID = WebSecurity.GetUserId(User.Identity.Name);
    // Disable tracking to prevent state conflicts
    int aFound = db.Model.AsNoTracking().Where(x => x.aID == aID && x.UserID == userID).Count();

    return (aFound > 0);
}
ログイン後にコピー
メソッドは、変更を追跡せずにエンティティを取得するようになりました。これにより、編集ポストアクション中にエンティティの状態との干渉を防ぎ、「エンティティの添付」エラーを効果的に排除します。 これにより、その後の

状態の割り当てが正しく機能することが保証されます。

以上がasp.net mvc編集アクションで「型モデル名」のエンティティを添付する」のなぜ「failed」が発生するのか、どのように解決できるのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート